繁体   English   中英

在MVC4中获取Actionresult参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM