Как вызвать Index View с параметром любого контроллера MVC5 через тег привязки? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть контроллер Mvc

public class ApplicationsController : Controller
    {
        // GET: Applicants/Applications
        public ActionResult Index(Guid? ApplicationId)
        {
           //some work with the ApplicationId
            return View("Application Details");
        }


    }

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

http://localhost:66666/Applicants/Applications/xxxxxxxxxxxxxxxxxxxxxxxxx

Я пытаюсь вызвать его с помощью тега привязки:

 <script id="applicationDetailstemplate" type="text/x-jsrender">
<a href="../../../Applicants/Applications/{{:id}})">{{:position}}</a>
 </script>

URL-адрес приходит правильно, но действие не получаетназывается.Если я удаляю идентификатор из тега привязки, вызывается представление контроллера, но ApplicationId является нулевым.Как я могу также передать идентификатор?

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Спасибо @ Adyson спасибо за ответ.на самом деле я знал ответ, который вы дали, но в URL я не хотел, чтобы появился дополнительный заявитель.поэтому я попытался и обнаружил, что:

1) <a href="../../../Applicants/Applications/Index/{{:id}}">{{:position}}</a> вызывает представление индекса с передачей идентификатора.но в URL появится Index.

2) <a href="../../../Applicants/Applications">{{:position}}</a> С помощью этого метода можно вызвать представление индекса по умолчанию, и URL будет http://localhost:66666/Applicants/Applications

3) <a href="../../../Applicants/Applications/{{:id}}">{{:position}}</a>, это не будет работать, нетнезависимо от того, что.

наконец я переименовал индексное представление в подробное представление и остановился.все еще узнал, что индекс не может быть вызван в URL-адресе, а Id передается в представление.

0 голосов
/ 30 мая 2018

Я подозреваю, что если вы не изменили правила маршрутизации по умолчанию, вам нужно записать его как

../../../Applicants/Applications?ApplicationId={{:id}}

Обычно это форма, в которой вы вводите идентификатор в путь (в отличие от строки запроса)работает только в том случае, если переменная в сигнатуре вашего метода действия буквально просто «id» (не любое другое имя).

Также, если это часть View, рассмотрите возможность использования помощника HTML, чтобы убедиться, что правильный URLвсегда генерируется для основной части вашего пути, например:

@Url.Action("Applicants", "Applications")?ApplicationId={{:id}}
...