0
내가 로그인 한보기 :보기에 렌더링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)을 게시 할 로그인을 시도 할 때 : Html.TextBox를 사용
public ActionResult Login(LoginFormViewModel loginDetails)
{
//do stuff
}
내가 수동으로 양식 필드 '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)
을하지만이 작업을 얻을 수 없습니다입니다.
강력한 형식의 도우미를 사용할 때만 같은 모델을 게시 할 수 있습니까? 이게 내가 누락 된 것이 있습니까? Intellisense는 양식 필드 문자열과 같은 단서를 제공하지 않습니다. EditorFor
도우미 :
[HttpPost]
public ActionResult Login(
[Bind(Prefix = "EditForm")]LoginFormViewModel loginDetails
)
{
...
}
은 이제 강하게 TextBoxFor
또는 더 나은를 입력 자유롭게 사용 : 기본 모델 바인더가 성공적으로 속성을 해결할 수 있도록