我有一个场景,我需要使用单个视图实现两个表单...将有一个主页,每个表单用于LogIn和SignUp(类似于Facebook主页)。我为我的主页(Index.cshtml)创建了一个视图,其中包含我的两个表单的razor
代码。
[@using (Html.BeginForm("LogIn", "Home", FormMethod.Post))
]
[@using (Html.BeginForm("SignUp", "Home", FormMethod.Post))
]
但是,在单击LogIn表单的“登录”按钮或单击“注册”按钮以获取SignUp表单时,运行时会抛出一个错误,基本上说我仍然需要为LogIn和SignUp操作创建视图,即使我已经在index.cshtml中实现了HTML表单
[注意:我没有使用ASP.NET成员资格提供程序。这个问题通常有两种形式,可以是任何两种形式。]
所以我的问题是:我真的需要再创建两个名为LogIn.cshtml和SignUp.cshtml的视图吗?这不会导致代码重复吗?我对MVC 4很陌生,我希望你能理解我在这里要做的事情,所以我想知道的是,是否还有其他方法可以实现这一点? (jQuery,AJAX或其他)
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpGet]
public ActionResult LogIn()
{
return View();
}
[HttpPost]
public ActionResult LogIn(Account acc)
{
// some code
return View();
}
[HttpGet]
public ActionResult SignUp()
{
return View();
}
[HttpPost]
public ActionResult SignUp(Account acc)
{
// some code
return View();
}
}
答案 0 :(得分:0)
您可以指定要返回的视图:
[HttpGet]
public ActionResult SignUp()
{
return View("LogIn");
}