我在控制器中有2个索引方法,一个最初加载页面,一个接受表单提交并根据提交的数据重新加载相同的视图。
[HttpGet]
public ActionResult Index()
{
loads page with viewmodel containing a searchobject that is submitted with a form on the page
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Index(SearchModel Model)
{
takes form submit and reloads page based on search results
return View(Model);
}
我在同一个控制器中也有一个添加视图/方法。我想要做的是当add函数成功时,我想调用索引的POST版本并将它传递给刚刚添加的项目的id。
这是我到目前为止所拥有的:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Add(AddModel addmodel)
{
do stuff
var status = client.Add(dto);
if (!status)
{
return View(AddModel);
}
SearchModel = new SearchModel();
SearchModel.ID= addmodel.ID;
return Index(search, null);
}
它进入POST索引方法,但是在它离开该方法后,它返回到add并尝试使用搜索视图模型加载添加页面,并且显然会引发异常。
我有什么想法可以做这样的事情吗?
答案 0 :(得分:0)
默认情况下,View(Model)
使用当前操作的名称(在您的情况下路由到 - Add
的名称,而不是当前方法名称 - Index
)。
修复:明确指定视图名称:
public ActionResult Index(SearchModel Model)
{
takes form submit and reloads page based on search results
return View("Index", Model);
}