ASP.NET MVC3 Html.EditorFor () проблема - PullRequest
       4

ASP.NET MVC3 Html.EditorFor () проблема

0 голосов
/ 01 декабря 2010

Я пытаюсь привязать данные к модели с помощью помощника Html.EditorFor () и отправить, но модель, поступающая в контроллер, пуста.

Вот код модели:

public class LogOnModel
{
    [LocalizedRequired]
    [LocalizedDisplayName("User Name")]
    public string UserName { get; set; }

    [LocalizedRequired]
    [DataType(DataType.Password)]
    [LocalizedDisplayName("Password")]
    public string Password { get; set; }

    [LocalizedDisplayName("Remember Me")]
    public bool RememberMe { get; set; }
}

это cshtml:

@model Models.LogOnModel
{
    View.Title = "Log On";
}
@using (Html.BeginForm())
{
    @Html.EditorFor(m => m.UserName);
    @Html.EditorFor(m => m.Password);
    <input type="submit" value="LogOn" />
}

и HTML-код генерируется так:

<input id="UserName_UserName" name="UserName.UserName" type="text" value="qwerty" />
<input id="Password_Password" name="Password.Password" type="password" />

это похоже на ошибку в сгенерированном html-коде, это должно быть id = "someid" value = "somevalue", но не id = "someid_someid" value = "somevalue.somevalue"

Ответы [ 4 ]

5 голосов
/ 01 декабря 2010

Поскольку вы просто используете текстовые поля, вы всегда можете использовать следующие

@using (Html.BeginForm()) {
    @Html.TextBoxFor(m => m.UserName);
    @Html.PasswordFor(m => m.Password);
   <input type="submit" value="LogOn" />
}

В противном случае это может зависеть от созданных вами пользовательских шаблонов.

2 голосов
/ 26 ноября 2014

Привет, Вы можете решить это, просто поместив директиву @type так:

 @Html.EditorFor(model => model.strPassword, new { htmlAttributes = new { @class = "form-control",@type="password" } })
0 голосов
/ 24 июля 2015
@using (Html.BeginForm()) {
    @Html.TextBoxFor(m => m.UserName);
    @Html.TextBoxFor(m => m.Password);
   <input type="submit" value="LogOn" />
}
0 голосов
/ 01 декабря 2010

спасибо! да, это была проблема в шаблоне редактора:

<div class="textinput">@Html.TextBox(ViewData.ModelMetadata.PropertyName, Model)</div>

Я решаю это так:

<div class="textinput">@Html.TextBox(String.Empty)</div>

это хорошее решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...