我在将ID从URL传递到控制器操作时遇到了一些问题
假设我有这个网址:Bing / Index / 4
在我的母版页面中,我想生成一个提交BingController SearchAction的表单。我做了类似的事情
using(Html.BeginForm<BingController>(action => action.Search(id)))
如何从url获取id(本例中为4)以将其传递给Search操作?
感谢您的帮助
答案 0 :(得分:3)
要在母版页中访问该数据,您的控制器需要将其添加到ViewData,以便母版页可以访问它。
public ActionResults Index(string id)
{
ViewData["SearchID"] = id;
return View();
}
然后在您的母版页中,您可以在ViewData中访问它
using (Html.BeginForm("Search", "Bing", { id = ViewData["SearchID"] })
对于强类型视图,我有一个BaseModel类,它具有母版页需要的属性,而我所有其他模型都继承了基类。像这样......
public class BaseModel
{
prop string SearchID {get;set;}
}
public class HomeIndexModel : BaseModel
{
}
public ActionResults Index(string id)
{
HomeIndexModel model = new HomeIndexModel();
model.SearchID = id;
return View(model);
}
您的母版页看起来像这样:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<BaseModel>" %>
<% using(Html.BeginForm<BingController>(action => action.Search(Model.SearchID))) { %>