我在一个页面中有两个表单。两者都有自己的属性并且有自己的提交操作,但在两种形式中都有一些共同的属性。
有没有办法使用一个视图模型构建一个包含两个表单的视图,这个视图模型在视图中共享两个表单的属性?
实际上我有重复的字段,我必须使用jquery复制两个字段中值的更改。
感谢。
答案 0 :(得分:0)
您可以使用HtmlPrefix来实现此目的。
我创建了一个模型
public class TestModel
{
[Required]
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
在Controller中,我们需要为每个表单设置一个GetMethod但两个post方法,但使用不同的 BindPrefix
public ActionResult TestLoad()
{
TestModel model = new TestModel();
return View(model);
}
public ActionResult TestA([Bind(Prefix = "A")]TestModel model)
{
return View("TestLoad",model);
}
public ActionResult TestB([Bind(Prefix="B")]TestModel model)
{
return View("TestLoad",model);
}
<table> <tr> <td> @{Html.ViewData.TemplateInfo.HtmlFieldPrefix="A";} @{Html.RenderPartial("PartialA");} </td> <td> @{Html.ViewData.TemplateInfo.HtmlFieldPrefix="B";} @{Html.RenderPartial("PartialB");} </td> </tr> </table>
两个局部视图完全相同,只是它们将数据发布到不同的操作(在控制器中定义)
- 醇>
现在,如果你运行项目,你应该得到适当的输出。