需要在MVC中传递一个querystring变量,所以我可以将它与jquery一起使用?

时间:2010-10-04 15:31:15

标签: asp.net-mvc vb.net query-string

我想创建此网址blah.com/preview?h=yes

所以我可以这样做

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

3 个答案:

答案 0 :(得分:1)

您可以使用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" }
) %>

答案 1 :(得分:0)

在您可以检查的视图模型上设置属性。

E.g。的视图模型

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 -->
<% } %>

HTHS,
查尔斯

答案 2 :(得分:0)

您确定需要从服务器那样做吗?

您可以改为遵循Unobtrusive Javascript / Progressive Enhancement方法。