#asp.net #asp.net-mvc #razor #html-helper #html.actionlink
#asp.net #asp.net-mvc #бритва #html-помощник #html.ссылка на действие
Вопрос:
Я использую приведенный ниже код для отображения ссылки, которая перенаправляет пользователя на определенное действие
@Html.ActionLink("Edit", "EditQO", "Questionnaire", new { id = Model.objtbl_Qlist[k].Qid })
Но то, что происходит, вместо того, чтобы принимать значение идентификатора, mvc автоматически генерирует переменную длины в URL-адресе, в котором хранится длина Questionnaire
.
public ActionResult EditQO(int Length) { AdminAddQuestion objadminadd = new AdminAddQuestion(); objadminadd.objtbl_Qlist = objbussiness.GetQuestionByID(Length); objadminadd.objtbl_Olist = objbussiness.GetOptionsById(Length); return View(objadminadd); }
**Это не настоящий код. Я заменил id
переменную на length
переменную для целей отладки.
Теперь, если во время отладки я передаю правильное значение в этой переменной длины, макет успешно отображается на странице. Однако, когда я использую приведенные ниже коды ссылок для отображения ссылки, макет не отображается на странице. @Html.Ссылка на действие(«Редактировать», «EditQO», «Анкета», новый { id = Model.objtbl_Qlist[k].Qid })
lt;a href="@Url.Action("EditQO",new { id = Model.objtbl_Qlist[k].Qid })"gt;Edit |lt;/agt; @Html.RouteLink("Edit", new { action="EditQO",controller="Questionnaire",id= Model.objtbl_Qlist[k].Qid }) @Html.ActionLink("Edit", "EditQO", "Questionnaire", new { id = Model.objtbl_Qlist[k].Qid },null)
На каждой второй странице моего приложения макет успешно отображается. Похоже, проблема возникает во время передачи идентификатора. Потому что, когда я использую самую верхнюю ссылку, переменная длины автоматически генерируется(я не знал логики, лежащей в ее основе) и принимает длину имени контроллера, и я беру эту переменную внутри имени метода и изменяю на правильное значение идентификатора, страница макета успешно отрисована.
Итак, может кто-нибудь, пожалуйста, помочь мне понять, что я делаю не так с этим.