簡體   English   中英

ASP.NET MVC3 Html.EditorFor()問題

[英]ASP.NET MVC3 Html.EditorFor() problem

我嘗試使用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”

由於您僅使用文本框,因此您始終可以使用以下內容

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

否則,它可能取決於您創建的自定義模板。

嗨,您可以通過如下方式放置@type指令來解決此問題:

 @Html.EditorFor(model => model.strPassword, new { htmlAttributes = new { @class = "form-control",@type="password" } })
@using (Html.BeginForm()) {
    @Html.TextBoxFor(m => m.UserName);
    @Html.TextBoxFor(m => m.Password);
   <input type="submit" value="LogOn" />
}

謝謝! 是的,這是編輯器模板中的問題:

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

我這樣解決:

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

這是一個好的解決方案嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM