Не удается отобразить макет из-за функциональности actionlink

#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)  

На каждой второй странице моего приложения макет успешно отображается. Похоже, проблема возникает во время передачи идентификатора. Потому что, когда я использую самую верхнюю ссылку, переменная длины автоматически генерируется(я не знал логики, лежащей в ее основе) и принимает длину имени контроллера, и я беру эту переменную внутри имени метода и изменяю на правильное значение идентификатора, страница макета успешно отрисована.

Итак, может кто-нибудь, пожалуйста, помочь мне понять, что я делаю не так с этим.