Форматирование @ Html.EditorFor

Я пытаюсь отформатировать поле в своей форме редактирования. Я хотел бы, чтобы это было в денежном формате без десятичных знаков.

    <div class = "col-md-3">
            @Html.LabelFor(model => model.Value, htmlAttributes: new { @class = "control-label col-md-3 noleftpadding" })
            <div class = " input-group col-md-6 nopadding">
                <div class = "col-md-12 nopadding">
                    @Html.EditorFor(model => model.Value, new { htmlAttributes = new { @class = "form-control" } })
                </div>
            </div>
        </div>

Как мне это сделать?

Я также попытался изменить модель, однако, когда я использую этот метод, каждый раз, когда я пытаюсь редактировать другое поле, приложение сбрасывает любое существующее значение на null, даже если я не делал это изменение намеренно.

    [DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
    public Nullable<decimal> Value { get; set; }

Я обнаружил, что если я установлю для ApplyFormatInEditMode значение false, мое значение не будет сброшено, однако при отображении на странице редактирования оно вернется к десятичному значению, когда я хочу, чтобы оно выглядело как значение валюты без десятичных знаков.

Шаблон редактора

<!DOCTYPE html>
<html>
<head>
    <meta charset = "utf-8" />
    <meta name = "viewport" content = "width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
    <script type = 'text/javascript' >
        var appInsights=window.appInsights||function(config)
        {
            function r(config){ t[config] = function(){ var i = arguments; t.queue.push(function(){ t[config].apply(t, i)})} }
            var t = { config:config},u=document,e=window,o='script',s=u.createElement(o),i,f;for(s.src=config.url||'//az416426.vo.msecnd.net/scripts/a/ai.0.js',u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=['Event','Exception','Metric','PageView','Trace','Ajax'];i.length;)r('track'+i.pop());return r('setAuthenticatedUserContext'),r('clearAuthenticatedUserContext'),config.disableExceptionTracking||(i='onerror',r('_'+i),f=e[i],e[i]=function(config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t['_' + i](config, r, u, e, o),s}),t
        }({
            instrumentationKey:'7b294d9c-2c13-4d61-bd3f-65ffb8e1561a'
        });

        window.appInsights=appInsights;
        appInsights.trackPageView();
    </script>
</head>
<body>
    <div class = "navbar navbar-inverse navbar-fixed-top">
        <div class = "container">
            <div class = "navbar-header">
                <button type = "button" class = "navbar-toggle" data-toggle = "collapse" data-target = ".navbar-collapse">
                    <span class = "icon-bar"></span>
                    <span class = "icon-bar"></span>
                    <span class = "icon-bar"></span>
                </button>
                @Html.ActionLink("SJAssoc", "LoggedIn", "Account", new { area = "" }, new { @class = "navbar-brand" })
            </div>
            <div class = "navbar-collapse collapse">
                <ul class = "nav navbar-nav">
                    <li>@Html.ActionLink("To Do List", "Index", "Todoes")</li>
                    <li>@Html.ActionLink("Strategy", "Index", "Strategy")</li>
                    <li>@Html.ActionLink("Opptys", "Index", "Opptys")</li>
                    <li>@Html.ActionLink("EMeetings", "Index", "EMeetings")</li>
                    <li>@Html.ActionLink("Register", "Register", "Account")</li>
                    <li>@Html.ActionLink("Logout", "Logout", "Account")</li>
                    @*<li>@Html.ActionLink(""</li>*@

                </ul>

            </div>
        </div>
    </div>
    <div class = "container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>

Как выглядит шаблон редактора?

zgood 09.10.2018 17:51

Не совсем уверен, как на это ответить, но я отредактировал свой код выше, чтобы показать общий формат моей формы редактирования.

user9448003 09.10.2018 19:21

У вас должен быть частичный файл .cshtml, относящийся к используемому вами Html.EditorFor. Я просто хочу увидеть эту разметку. Обычно они находятся в "Views / Shared / EditorTemplates /".

zgood 09.10.2018 19:26

Я понял. Я только что добавил код общего шаблона.

user9448003 09.10.2018 19:29

Это похоже на файл "_Layout.cshtml", а не на шаблон редактора. У вас есть файлы в "Views / Shared / EditorTemplates"?

zgood 09.10.2018 21:17

У меня нет папки / файла EditorTemplates ...

user9448003 09.10.2018 21:19

Значение (скажем) $10 не может быть привязано к десятичной системе (из-за символа валюты). Вам нужно будет создать собственный ModelBinder, если вы хотите это сделать. (Возможно, вас заинтересует mvc-numericinput как альтернатива)

user3559349 10.10.2018 14:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
203
0

Другие вопросы по теме