【问题标题】:Show certain HTML based off query string显示基于查询字符串的某些 HTML
【发布时间】:2015-07-13 13:59:24
【问题描述】:

我有一个查询字符串,我想将它传递到我的剃刀视图中。 example.com/25?Type=1&Assigned=1

我想根据查询字符串是否包含某些值来更改我的 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。我做错了什么?

【问题讨论】:

  • 我对剃刀视图不太熟悉,但我猜它更像Request.QueryString["Type"] == "1" and Request.QueryString["Assigned"]=="1"。您不能检查整个查询字符串,而是检查每个单独参数的值。编辑:看起来有人在答案上击败了我。

标签: c# asp.net asp.net-mvc query-string


【解决方案1】:

Request.QueryString 甚至不是boolean 值,所以不明白你在做什么。它是NameValueCollection 类型。如果你仍然想检查它,你应该这样写:

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

但在 MVC 中使用 QueryString 进行操作确实是不好的做法。使用强类型视图,不要与Request 本身混淆。

【讨论】:

  • 感谢您的回答。我必须根据他们正在查看的动态生成的“形式”在按钮上设置某些类。所以我想不出任何其他方式来做到这一点,因为表单是通过查询字符串生成的
  • 啊,我明白了。但是您可能会想到其他生成形式的方式吗?我看不到您的完整案例,但是 EditorTemplates 可能适合您的情况吗?你想做的事情真的很乱。
  • 依赖查询字符串的明显问题是它们很容易被恶意(甚至只是好奇)最终用户操纵,尽管我确信这是不言而喻的......跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 2018-08-18
相关资源
最近更新 更多