ASP.NET MVC3 Html.EditorFor()问题

Boo*_*Boo 0 c# razor asp.net-mvc-3

我尝试使用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; }
}
Run Code Online (Sandbox Code Playgroud)

这是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" />
}
Run Code Online (Sandbox Code Playgroud)

和HTML代码生成如下:

<input id="UserName_UserName" name="UserName.UserName" type="text" value="qwerty" />
<input id="Password_Password" name="Password.Password" type="password" />
Run Code Online (Sandbox Code Playgroud)

它似乎是html生成的代码中的错误,它应该是id ="someid"value ="somevalue",但不是id ="someid_someid"value ="somevalue.somevalue"

Bui*_*ted 5

由于您只是使用文本框,因此您始终可以使用以下内容

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

否则,它可能取决于您创建的自定义模板.