我的布局页面中有一个搜索文本输入在partialView和其他3个页面中使用布局:
@using (Html.BeginForm("Search", "Product"))
{
@Html.TextBoxFor(m => m.SearchText)
@Html.ValidationMessageFor(m => m.SearchText)
<input type="submit" value="Search"/>
}
当它进入产品/搜索操作时,我怎么知道它来自何处并返回正确的页面,并假设其他3个页面使用不同的ViewModel?
答案 0 :(得分:2)
在您的布局中,修改您的BeginForm
以在路线值中包含请求路径:
@using (Html.BeginForm("Search", "Product"),new {path = Request.Path})
然后,在您的控制器中,您可以通过重定向到该路径来完成:
public ActionResult Search( string path, FormCollection form ) {
// build your search results here
return Redirect( path );
}
这应该可以解决问题。如果需要传递其他信息,可以将查询字符串附加到路径:
public ActionResult Search( string path, FormCollection form ) {
// build your search results here
return Redirect( path + "?message=foo" );
}