2014-09-22 56 views
0

我工作的一個簡單的MVC應用程序,在那裏我獲得了下面的路徑獲得一個ActionResult參數在MVC4

@Html.ActionLink(@objcity.CityName, "AgentProfiles", "Home", new {@Id=objcity.MaProvision.ProvinceName+"/"[email protected] }, null) 

它使一個網址是這樣的:

http://localhost:45896/Home/AgentProfiles/Ontario/testt 

在控制器I已經寫了這種方法:

public ActionResult AgentProfiles(String Id) 
{ 
    //Code 
} 

是否有可能進入/安大略/ testt在Id變量?

+1

您是否試圖在您的操作方法中獲取'ProvinceName'和'CityName'的值? – 2014-09-22 12:38:14

+0

你有沒有路由這些參數?也顯示你的路線 – Tushar 2014-09-22 13:04:02

回答

2

你想/Ontario/testtID(Route參數)爲此,你必須修改默認路由點點,或者你必須做出一個自定義的路線,但在我爲您簡單的要求意見試試下面的答案。

而不是

@Html.ActionLink(@objcity.CityName, "AgentProfiles", "Home", new {@Id=objcity.MaProvision.ProvinceName+"/"[email protected] }, 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. 
{......} 

OR

編輯: - 試試這個你的評論。

在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) 
{......} 
+0

I'just只需要添加斜槓(「\」)....事情我需要添加 – user4066499 2014-09-22 13:36:38

+0

@ user4066499 ...對不起,我沒有你你是什麼說???? – 2014-09-22 13:40:44

+0

你的代碼工作正常,但我需要這個http:// localhost:45896/Home/AgentProfiles/Ontario/Punjabb,但你的代碼顯示這個http:// localhost:45896/Home/AgentProfiles?ProvinceName = Ontario&CityName = Punjabb – user4066499 2014-09-22 13:42:37

1

你可以修改你的路由喜歡 -

{controller}/{action}/{*catchall} 

和行動方法

public ActionResult AgentProfiles(string catchall) 
{ 
// your code 
} 

然後,您將在您的catchall參數中使用動作方法中的值/ Ontario/testt。

+0

我已經做了this.getting錯誤...頁面未找到 – user4066499 2014-09-22 13:39:46

+0

首先,您必須確保像AgentProfiles視圖頁面可用或不。如果是的話,你在做什麼?你想使用/ Ontario/testt在URL中打開某個頁面?如果是,那麼我認爲應該有一個名爲Ontario的控制器和名爲testt的操作方法。請詳細告知我爲什麼你收到404頁未找到錯誤。 – Mukund 2014-09-23 05:01:41