我有一个方法可以在我的帖子中从视图中传回我的viewmodel:
[HttpPost]
public ActionResult DoStuff(daViewModel model)
{
string whatever = model.Name;
int id = model.Id;
return View();
}
将什么类型的对象传递回post上的控制器方法(我的viewmodel是否包含在httppost类的类中?)是否存在我可以传递的泛型/类型,如:
[HttpPost]
public ActionResult DownloadFiles(object model)
{
// cast my daViewModel from object model as passed in???
string whatever = model.Name;
int id = model.Id;
return View();
}
答案 0 :(得分:3)
您可以传递FormCollection
对象:
[HttpPost]
public ActionResult DownloadFiles(FormCollection collection)
{
// if you want to extract properties directly:
string whatever = collection["Name"];
int id = int.Parse(collection["Id"]);
// if you want to convert the collection to your model:
SomeModel model;
TryUpdateModel(model, collection);
return View();
}
TryUpdateModel
方法返回一个布尔值。如果成功更新模型,它将返回true,否则返回false。传入的表单值应与模型的属性名称匹配。
如果你问的是当你打电话给return View()
时会传回什么样的模型,那么除非你告诉它,否则答案是没有的。 View()
方法有一个过载,它接受一个模型:
return View(model);
您应该返回View期望看到的类型。如果您将视图定义为Foo
模型,那么最好在控制器中返回Foo
。