Нужно передать переменную строки запроса в MVC, чтобы я мог использовать ее с jquery? - PullRequest
1 голос
/ 04 октября 2010

Я хотел бы создать этот URL blah.com/preview?h=yes

, чтобы я мог сделать это

<% if request.querystring("h") = "yes" then %>
jquery stuff
<% else %>
don't do jquery stuff
<% end if %>

Ответы [ 3 ]

1 голос
/ 04 октября 2010

Вы можете использовать HTML-помощник:

<%= Html.ActionLink(
    "some text", 
    "someaction", 
    "somecontroller", 
    new { h = "yes" },
    null
) %>

При использовании маршрутов по умолчанию будет сгенерирована следующая ссылка:

<a href="/somecontroller/someaction?h=yes">some text</a>

Или если вы хотите сгенерировать только ссылку, которую можете использоватьпомощник по URL:

<%= Url.Action(
    "someaction", 
    "somecontroller", 
    new { h = "yes" }
) %>
0 голосов
/ 04 октября 2010

Вы уверены, что должны делать это с сервера.

Вместо этого вы можете использовать Ненавязчивый Javascript / Прогрессивное улучшение .

0 голосов
/ 04 октября 2010

Установите свойство в вашей модели представления, которое вы можете проверить.

Например, ViewModel

public class SomeActionViewModel
{
    public bool DoJquery { get; set; }
}

Действие (вызывается через http://www.myawesomesite.com/somecontroller/someaction?h=yes)

public ActionResult SomeAction(string h)
{
    var viewModel = new SomeActionViewModel();

    if (!string.IsNullOrWhiteSpace(h) && (h.ToLower() == "yes"))
        viewModel.DoJquery = true;

    return View(viewModel);
}

Просмотр

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<SomeActionViewModel>" %>

<% if (ViewModel.DoJquery) { %>
    <!-- Do jQuery -->
<% } else { %>
    <!-- Don't do jQuery -->
<% } %>

HTH,
Charles

...