0
我已登錄認爲需要LoginPageViewModel:MVC3 html.TextBox
public class LoginPageViewModel : PageViewModel
{
public string ReturnUrl { get; set; }
public bool PreviousLoginFailed { get; set; }
public LoginFormViewModel EditForm { get; set; }
}
其在視圖中呈現。當用戶試圖登錄我只想給LoginFormViewModel(Model.EditForm)張貼到控制器:
public ActionResult Login(LoginFormViewModel loginDetails)
{
//do stuff
}
使用Html.TextBox我可以手動指定表單字段「loginDetails.UserName」的名稱和發回控制器,一切正常。
@model Web.Controllers.User.ViewModels.LoginPageViewModel
@using (Html.BeginForm()){
@Html.Hidden("loginDetails.ReturnUrl", Model.ReturnUrl)
@Html.LabelFor(x => x.EditForm.UserName, "User Name:")
@Html.TextBox("loginDetails.UserName", Model.EditForm.UserName)
@Html.ValidationMessageFor(x => x.EditForm.UserName)
.....
但我想要做的就是使用staticaly類型的助手,喜歡的東西:
@Html.TextBoxFor(x => x.EditForm.UserName)
但我無法得到這個工作。
您是否只能在使用強類型幫助器時回發相同的模型?有什麼我錯過了嗎?智能感知似乎沒有給出任何線索,如表單字段字符串。