【问题标题】:ASP.NET MVC - GET with one ViewModel, POST with anotherASP.NET MVC - 使用一个 ViewModel 获取,使用另一个 ViewModel 发布
【发布时间】:2016-03-06 07:51:33
【问题描述】:

我是个菜鸟,所以如果这是一个愚蠢的问题,请原谅我。

我正在使用 ASP.NET MVC 2 中的模型绑定成功加载页面。现在我想使用模型绑定来提交表单的结果,但我想使用与我加载的模型不同的模型。这可能吗?还是我应该为这两个目的使用相同的 ViewModel?

【问题讨论】:

标签: asp.net-mvc


【解决方案1】:

是的,这绝对是可能的。

唯一要记住的是表单输入中的name 属性必须与视图模型中的属性相同。

目前我有一个手工制作的表单(没有强类型助手),一旦发布就绑定到视图模型。

【讨论】:

  • 所以我不能使用强类型助手?对不起,我很困惑。
  • 可以,只要两个视图模型中的属性名称相同即可。例如。 viewModel1.DisplayName & viewModel2.DisplayName
  • 如果 viewModel2 是 viewModel1 的子对象(如viewModel2.DisplayName ==> viewModel1.viewModel2.DisplayName)怎么办?
【解决方案2】:

是的,这是可能的。您的 details 控制器操作和创建控制器操作是不同的方法,因此您可以让它们接受您想要的任何类型。

//
// GET /Test/12
public ActionResult Details(int id)
{
    return View(new ViewModel{/*properties init*/});
}

//
// POST: /Test/Update
[HttpPost]
public ActionResult Update(UpdateModel model)
{
    //Do something with the model
    return RedirectToAction("Index");
}

【讨论】:

  • 我对使用模型绑定的视图示例更感兴趣。您发布的部分对我来说很有意义。
猜你喜欢
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多