2013-03-08 1 views
0

Я очень новичок в ASP.net и недавно перешел из asp.net в asp.net MVC-проекты. У меня есть один основной вопрос в asp.net MVC Url.Action.ASP.net MVC Url.Action Формат ссылок

У меня есть один ActionResult метод с двумя параметрами QuestionId, Response в моем контроллере и конфигурации маршрутизации следующим образом, конфигурация

public class QuestionController : Controller 
{ 
    public ActionResult Answer(int QuestionId, string Response) 
    { 
     ..do something..... 
    } 
} 

и маршрутизации отображаются в

routes.MapRoute(
       name: "QuestionAnswer", 
       url: "{controller}/{action}/{QuestionId}/{Response}", 
       defaults: new { controller ="Question", action = "Answer", QuestionId = 0, Response = string.Empty} 
      ); 

Вызов действия Ссылка на HTML-страницу из нижеприведенный синтаксис

@Html.ActionLink("Answer is 1", "Answer", "Question", null, null, null, new RouteValueDictionary(new {QuestionId = 10, Response = "1" }), null) 

он формирует URL-адрес Like/Question/Answer? QuestionID = 10 & Response = 1, этот url соответствует определению маршрутизации и вызывает действие правильно. Все отлично.

Но мое фактическое требование - эти имена параметров не должны подвергаться воздействию. Это должно быть как /Вопрос/Ответ/10/1

Я не хочу вручную отформатировать эту ссылку с помощью String.Format, так как мой сайт может быть помещен в виртуальный каталог не как веб-сайт по умолчанию.

+0

вы можете попробовать это http://www.codeproject.com/Articles/576514/AplusBeginner-splusTutorialplusonplusVariousplus – Abdul

ответ

0

Поскольку ActionLink выполнит запрос GET, значения всегда будут в строке запроса. Один из способов удалить queryId и ответ от запроса - выполнить POST для вашего ответа с помощью параметра questionId и параметров ответа с использованием формы.

Другие варианты - выполнить запрос ajax и обновить dom на ответ.

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

  • Нет связанных вопросов^_^