2016-07-26 15 views
0

Ich bin versucht zu verwenden @ Url.Action passieren mehrere Parameter über die URL in einer solchen Art und Weise passieren mit dem RouteAttribute@ Url.Action Extend ich in den zusätzlichen Parameter mehrere Aktionen

<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) 
{ 
... 

lesen Ich weiß, dass ich diese über eine Abfrage-String übergeben kann, aber aus Gründen der Sauberkeit ist dies nicht bevorzugt.

Antwort

2

Sie müssen Ihre Parameter in einem RouteValueDictionary oder einem anonymen Objekt (einfacher) umbrechen. Ich nehme an, dass der Name Ihres Controllers SurveyController ist.

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

, wenn der Controller Name OP ist 'SurveyController' dann Ihre Syntax ist falsch für' Url.Action' .. Sie benötigen tauschen ' "Seite"' mit ' "Survey"' .. das ** * action * kommt vor dem ** controllername ** –

+0

@BviLLe_Kid Du hast Recht, mein Fehler. Fest. Ich bin verwöhnt von Intellisense. – DPac

+0

@DPac, wenn ich das oben angegebene Code-Snippet übergebe (@ Url.Action ("Page", "Umfrage", neu {surveyId = Model.SurveyID, pageNumber = Model.SurveyPageNumber})), bekomme ich eine URL mit eine Abfragezeichenfolge (/ Page/1? surveyId = 1), die ich versuche zu vermeiden. –

Verwandte Themen