2011-08-12 76 views
0

Im新的MVC。如何在ASP.NET MVC中路由此

我有一些圖表(ChartsController),其中I有一個動作結果

public ActionResult TheChart { ...etc 

然後我具有顯示圖表(其使用Highcharts圖表的JavaScript)的圖的控制器。這通過這個調用它的數據

public JsonResult GetData(string id) { ..etc 

所有的作品都很好。

我想現在添加一個參數,以便我可以稍微更改我的javascript在視圖中的某些條件。 (顯示用於打印) 我想喜歡

public ActionResult TheChart(string mediaType) 
{ 
    if (mediaType="print"){ 
      ViewData["pdf"] = true; 
    } 
} 

東西然後我可以在視圖抓住這一點。

問題是,現在我的JsonResult不工作(我認爲由於路由)。 如何解決這個問題的任何想法?

+0

請更準確地告訴我們處理哪些請求,哪些不是。 「我的JsonResult不起作用」是什麼意思?你的代碼沒有命中?你的客戶沒有收到結果?你的意思是http:// mysite/Controller/TheChart?mediaType = pdf是否被正確接收和處理,但之後http:// mysite/Controller/GetData/id沒有被你的服務器代碼命中?您是否使用WireShark等嗅探器來查看線路上發生了什麼? –

回答

0

那是因爲你有(串mediaType的)

你需要的是像這樣的新路線:

routes.MapRoute("all-user", "Controller/TheChart/{mediaType}", 
         new { controller = "Controller", action = "TheChart"}); 

這正好你的Global.asax文件裏面櫃面你還沒有尚未使用這些。

+0

謝謝 - 我正在那裏看。 – Matt

+0

歡迎您:-) – davethecoder

0

這是一個錯字還是你真的寫了if (mediaType="print"){?有一個等號丟失。

+0

是的,只是一個錯字! – Matt