扩展@ Url.Action以传递多个操作

时间:2016-07-26 18:41:17

标签: c# asp.net asp.net-mvc razor

我正在尝试使用@ Url.Action通过URL传递多个参数,这样我就可以使用RouteAttribute读取额外的参数

<li><a class="survey-button" href="
@Url.Action("Survey",(Model.SurveyID).ToString(),"Page"(Model.PageNumber).ToString())
">Previous</a></li>

//localhost:8080/Survey/1/Page/1
[Route("Survey/{surveyID}/Page/{pageNumber}")]
public ActionResult Page(int surveyID, int pageNumber)
{
...

我意识到我可以通过查询字符串传递这些内容,但出于清洁原因,这不是首选。

1 个答案:

答案 0 :(得分:2)

您需要将参数包装在RouteValueDictionary或匿名对象中(更简单)。我假设您的控制器名称为SurveyController

@Url.Action("Page", "Survey", new {surveyId = Model.SurveyId, pageNumber = Model.PageNumber})