2013-05-21 2 views
3

у меня есть вопрос, связанный с Html.Action в MVC 4 Я хочу передать некоторые переменные QueryString с ним просмотра подробной информации@ Html.Action MVC 4 с QueryString параметров

код у меня есть теперь

System.Text.StringBuilder MobileData = new System.Text.StringBuilder(); 

MobileData.AppendFormat("<a style=\"text-align:left;\" data-role=\"button\"  onclick=\"window.location='" + @Url.Action("Taken_Detail", new { id = tk.ID }) + "';\" data- ajax=\"true\" data-icon=\"alert\"><span class=\"AgenItems\">{1:dd-MM-yyyy}</span>", tk.ID, tk.Datum); 

проблема в том, что он перенаправляет меня на локальный/Projectname/Главная/Taken_Detail/2 что я хочу Главная/Taken_Detail? ID = 2 то, что я здесь отсутствует, я просто начинаю изучать MVC 4, Каждый совет приветствуется.

ответ

5

Это связано с тем, что ваши маршруты содержат параметр id. Удалите его из маршрутов, и Url.Action изменит URL-адрес и добавит ваш параметр в строку запроса.

Пример:

routes.MapRoute("Default", "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 

Параметр id будет введен после последнего слеша, если вы укажете его Url.Action.

Если вы удалите его:

routes.MapRoute("Default", "{controller}/{action}", 
    new { controller = "Home", action = "Index" }); 

В результате URL будет иметь строку запроса, содержащую id.

+0

Ty fero Super nice действительно: P hahah –

Смежные вопросы