2015-07-13 46 views
1

我有一个查询字符串,我想进入我的剃刀视图。 example.com/25?Type=1&Assigned=1显示某些HTML基于关闭查询字符串

我想根据查询字符串是否包含某些值来更改我的html。我试过

@if (Request.QueryString["Type=1&Assigned=1"]) 
{ 
    <button id="type1" class="btn-t btn-success type-button" 
onclick="SetType(1);"><i class="fa fa-info-circle fa-fw"></i>Invitation</button> 
} 
else { 
<button id="type1" class="btn-t btn-xxxx 
type-button" onclick="SetType(1);"><i class="fa fa-info-circle fa-fw"> 
</i>Invitation</button> 
} 

但它只显示else。我究竟做错了什么?

+0

我对razor视图不太熟悉,但是我认为它更像'Request.QueryString [“Type”] ==“1”和Request.QueryString [“Assigned”] == “1”'。您不能检查整个查询字符串,而是检查每个单独参数的值。编辑:它看起来像有人打我回答一拳。 – user2366842

回答

4

Request.QueryString甚至没有boolean价值,所以不明白你是什么donig。它是NameValueCollection类型。如果你还是要检查它,你应该这样写:

@if (Request.QueryString["Type"] == "1" 
    && Request.QueryString["Assigned"] == "1") 
{ 
... 
} 

但它确实不好的做法在MVC QueryString操纵。使用强类型视图,不要搞Request本身。

+0

感谢您的回答。我必须根据他们正在查看哪些“动态生成”的“表单”来在按钮上放置某些类。所以我想不出任何其他方式来做到这一点,因为通过查询字符串 – TheDizzle

+0

生成表单啊,我明白了。但可能是你会想到其他产生形式的方式?我看不到你满的情况,但maby'EditorTemplates'可以适合你的情况吗?你想要做的事情真的很混乱。 –

+0

依赖查询字符串的一个明显问题是,它们可以很容易地被恶意(甚至只是好奇)的最终用户操纵,尽管我确信这不言而喻... – user2366842