Html.Actionlink показывает неверное имя контроллера при использовании с вкладками jquery - PullRequest
3 голосов
/ 03 февраля 2012

Я использую плагин вкладок Jquery, чтобы иметь вкладки в моем представлении.

Я хочу <li><a href="../JobDetails/Index/1234">JobDetails</a></li> в качестве моей первой вкладки.

Для этого я делаю

   <li>@Html.ActionLink("JobDetails",
                "Index",   // <-- ActionMethod
                "JobDetails",  // <-- Controller Name.
                  new { id = 1234 }
                )</li>

Но я просматриваю источник, покажи мне эту ссылку

<li><a href="/Coordination?Length=10" id="1234">JobDetails</a></li>

где Coordination - это имя моего контроллера, и у меня есть эти вкладки на Coordination controller, а имя действия (ViewName) - Index.

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

1 Ответ

11 голосов
/ 03 февраля 2012

Это потому, что вы используете неправильный перегруженный метод. Попробуйте вместо этого:

    <li>
    @Html.ActionLink
    (
        "JobDetails", 
        "Index",   // <-- ActionMethod 
        "JobDetails",  // <-- Controller Name. 
        new { id = 1234 },
        null // pass a null value for the htmlAttributes object
    )
    </li>

Ваш оригинальный перегруженный метод - this :

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues,
    Object htmlAttributes
)

Как видно из приведенных выше имен параметров, вы передаете "JobDetails" в качестве текста ссылки, и так далее, и так далее. Вот почему вы получаете отрендеренную разметку.

Но используя эту перегрузку, вам просто нужно передать null для объекта htmlAttributes, чтобы получить желаемую разметку:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...