2010-05-12 105 views
1
具有問題

米,我已做了以下html.actionlink不傳遞參數在傳遞參數到控制器動作控制器動作

 

    Url.Action("SchoolDetails","School",new{id=item.SchoolId}) 

和我的控制器動作如下

 

    public ActionResult SchoolDetails(string schoolId,_ASI_School schoolDetail) 
    { 
      schoolDetail = SchoolRepository.GetSchoolById(schoolId); 
      return View(schoolDetail); 
    } 

我DN不知道爲什麼學校以上在行動中變得空虛。

回答

3

您的參數被命名爲id,而不是schoolIdUrl.Action方法調用。 html中的參數名稱,控制器的動作和路徑定義中的參數名稱必須匹配。你也必須在你的路線中有這個參數。例如,如果您使用默認路線a.k.a Controller/Action/{id},請將您的操作中的參數重命名爲id。如果在路由中找不到參數,它將被移至query-string參數,您可以在Request.QueryString["id"]的操作中訪問它。

+1

thnx非常... – FosterZ 2010-05-12 14:27:49

2

你必須Global.asax來定義你的默認路由:

routes.MapRoute(
     "Default", 
     "Home", 
     new { Controller = "Home", action = "Index", schoolId = UrlParameter.Optional } 

,改變你的ActionUrl.Action("SchoolDetails","School",new{schoolId =item.SchoolId})