[英]Getting an Actionresult Parameter in MVC4
我正在开发一个简单的MVC应用程序,在其中生成以下路径
@Html.ActionLink(@objcity.CityName, "AgentProfiles", "Home", new {@Id=objcity.MaProvision.ProvinceName+"/"+@objcity.CityName }, null)
它生成如下网址:
http://localhost:45896/Home/AgentProfiles/Ontario/testt
在控制器中,我编写了此方法:
public ActionResult AgentProfiles(String Id)
{
//Code
}
是否可以在ID变量中进入/ Ontario / testt?
您想为此获得Id(路由参数)中的 /Ontario/testt
,您必须稍微修改默认路由,或者必须创建自定义路由,但我认为您的简单要求请尝试以下答案。
代替
@Html.ActionLink(@objcity.CityName, "AgentProfiles", "Home", new {@Id=objcity.MaProvision.ProvinceName+"/"+@objcity.CityName }, null)
以此方式修改Actionlink
@Html.ActionLink(@objcity.CityName, "AgentProfiles", "Home", new { ProvinceName=objcity.MaProvision.ProvinceName ,CityName = objcity.CityName }, null)
控制器动作:
public ActionResult AgentProfiles(string ProvinceName,string CityName ) //get ProvinceName and CityName which will be coming as querystring variables as shown here.
{......}
要么
编辑:-根据您的评论尝试。
在AppStart文件夹内的RouteConfig.cs文件中添加另一条路由,如下所示:
routes.MapRoute(
"MvcRoutes", // Route name
"{controller}/{action}/{provincename}/{cityname}", // URL with parameters
new { controller = "Home", action = "Index", provincename = "", cityname= "" } // Parameter defaults
);
不要忘记将此自定义路由放在默认路由之上。
如下所示修改ActionLink
:
@Html.ActionLink(@objcity.CityName, "AgentProfiles", "Home", new { provincename = objcity.MaProvision.ProvinceName , cityname = objcity.CityName }, null)
控制器动作:
public ActionResult AgentProfiles(string provincename ,string cityname)
{......}
您可以像以下修改路由
{controller}/{action}/{*catchall}
和行动方法
public ActionResult AgentProfiles(string catchall)
{
// your code
}
然后,您的catchall参数中将具有值/ Ontario / testt,您可以在操作方法中使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.