我知道similar question already asked,但我的问题与保存页面状态有关。我使用相同的模型来简化。假设我有以下模型:以多种形式保存页面数据页面
public class LoginRegisterViewModel
{
public string LoginUsername { get; set; }
public string LoginPassword { get; set; }
public string RegisterUsername { get; set; }
public string RegisterPassword { get; set; }
public string RegisterFirstName { get; set; }
public string RegisterLastName { get; set; }
}
我感兴趣的两两件事:
1 - 我必须知道至极按钮被点击
2 - 我必须保持两个表单数据。这意味着当用户已经填写LoginUsername进行登录,然后决定注册网站并点击注册按钮,以响应这两个表单状态将被保存。
使用以下方法:
@model LoginRegisterViewModel
@using (Html.BeginForm("Login", "MemeberController", FormMethod.Post, new {})) {
@Html.LabelFor(m => m.LoginUsername)
@Html.TextBoxFor(m => m.LoginUsername)
@Html.LabelFor(m => m.LoginPassword)
@Html.TextBoxFor(m => m.LoginPassword)
<input type='Submit' value='Login' />
}
@using (Html.BeginForm("Register", "MemeberController", FormMethod.Post, new {})) {
@Html.LabelFor(m => m.RegisterFirstName)
@Html.TextBoxFor(m => m.RegisterFirstName)
@Html.LabelFor(m => m.RegisterLastName)
@Html.TextBoxFor(m => m.RegisterLastName)
@Html.LabelFor(m => m.RegisterUsername)
@Html.TextBoxFor(m => m.RegisterUsername)
@Html.LabelFor(m => m.RegisterPassword)
@Html.TextBoxFor(m => m.RegisterPassword)
<input type='Submit' value='Register' />
}
我就知道已经被点击了哪个按钮。但我不知道其他形式有什么信息。如果我只使用单个表单,我不知道哪个按钮已经提交了表单(我知道我可以使用Request.Form [“buttonvalue”],但我认为它不是干净的解决方案)。
在最坏的情况下,它是可能的模型包含一个网格信息:
public class LoginRegisterViewModel
{
public string LoginUsername { get; set; }
public string LoginPassword { get; set; }
public string RegisterUsername { get; set; }
public string RegisterPassword { get; set; }
public string RegisterFirstName { get; set; }
public string RegisterLastName { get; set; }
public List<RowModel> Rows {get; set;}
}
当我刚刚发送的登录表单,我不知道当前页面,分拣,在我的网页过滤器。 MVC如何帮助解决这些问题?
更新1:
我不想使用JavaScript和jQuery的一些原因。
你不想创建一个包含所有模型和发布的包装模型吗?这样你就可以将所有的数据放在一个地方 – mahlatse
你有两个独立的表格,可以回到2个独立的方法。您知道哪个按钮被点击哪个操作方法被击中。你无法获得其他形式的值。你需要2个独立的模型。当你在VS中创建一个新项目时,我建议你在'AccountController'中研究代码,以了解你应该做什么。 –