Asp.net mvc 如何在一个视图中使用两个窗体
我可以在一个视图中添加多个表单吗?如何使用它。这可以只使用一个模型来完成,还是我需要为不同的表单使用不同的模型。谁能给我举个好例子,或者给我推荐一篇详细解释的好文章。您可能应该使用两个模型,每个模型使用局部视图。否则,在发布表单时,您需要考虑一个表单可能尚未填写,并且模型可能缺少数据 这是个好问题,当我还是mvc的新手时,我自己也遇到过这个问题 我认为这里的一个很好的例子是注册表单和登录表单在同一页上 关键字是ViewModel,这是解决此问题的关键 在模型类中:Asp.net mvc 如何在一个视图中使用两个窗体,asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,我可以在一个视图中添加多个表单吗?如何使用它。这可以只使用一个模型来完成,还是我需要为不同的表单使用不同的模型。谁能给我举个好例子,或者给我推荐一篇详细解释的好文章。您可能应该使用两个模型,每个模型使用局部视图。否则,在发布表单时,您需要考虑一个表单可能尚未填写,并且模型可能缺少数据 这是个好问题,当我还是mvc的新手时,我自己也遇到过这个问题 我认为这里的一个很好的例子是注册表单和登录表单在同一页上 关键字是ViewModel,这是解决此问题的关键 在模型类中: public class Lo
public class LoginModel
{
public string UserName { get; set; }
public string UserPassword { get; set; }
}
public class RegisterModel
{
public int UserId { get; set; }
public string UserName { get; set; }
public string UserPassword { get; set; }
}
public class ViewModel
{
public LoginModel LoginModel { get; set; }
public RegisterModel RegisterModel { get; set; }
}
在您的控制器中:
public ActionResult Index()
{
var model = new ViewModel();
model.LoginModel = new LoginModel();
model.RegisterModel = new RegisterModel();
return View(model);
}
在您的视图中,我使用了1个主视图和2个局部视图将其拆分:
主要观点:
@model YourProject.Models.ViewModel
@Html.Partial("_LoginForm", Model.LoginModel)
@Html.Partial("_RegisterForm", Model.RegisterModel)
部分视图\u登录表单:
@model YourProject.Models.LoginModel
@using (Html.BeginForm("Login", "Home", FormMethod.Post))
{
@Html.TextBoxFor(x => x.UserName)
@Html.PasswordFor(x => x.UserPassword)
<input type="submit" value="Log In" />
}
@model YourProject.Models.LoginModel
@使用(Html.BeginForm(“Login”、“Home”、FormMethod.Post))
{
@Html.TextBoxFor(x=>x.UserName)
@Html.PasswordFor(x=>x.UserPassword)
}
局部视图_注册表执行:
@model YourProject.Models.RegisterModel
@using (Html.BeginForm("Register", "Home", FormMethod.Post))
{
@Html.TextBoxFor(x => x.UserName)
@Html.PasswordFor(x => x.UserPassword)
<input type="submit" value="Register" />
}
@model YourProject.Models.RegisterModel
@使用(Html.BeginForm(“Register”、“Home”、FormMethod.Post))
{
@Html.TextBoxFor(x=>x.UserName)
@Html.PasswordFor(x=>x.UserPassword)
}
请询问您是否有任何代码不清楚。拉尔斯的回答是一个很好的解决方案。我甚至会说这样的话:
public class RegisterModel : LoginModel
{
public int UserId { get; set; }
}
这样,您只需扩展基本模型类并保存几行代码。模型?还是视图模型?-1:因为标签spamI刚刚开始学习MVC,我对如何识别它感到太困惑了。您已经提供了完整的简单解决方案。。。谢谢。我希望我能给+10