相关疑难解决方法(0)

ASP.NET MVC剃刀:HTML中的条件属性

下面的代码看起来不干净.有什么改进代码的建议吗?

<li @if(ViewData["pagename"].ToString()=="Business details"){ <text>class="active" </text> } >
        <a  @if(ViewData["pagename"].ToString()=="Business details"){ <text>style="color: white; background-color: #08C; border: 1px solid #08C;" </text> }
            href="@Url.Action("BusinessDetails", "Business")">Business Details</a>
    </li> 
    <li @if (ViewData["pagename"].ToString() == "Booking policies"){ <text>class="active"</text> }> 
        <a  @if (ViewData["pagename"].ToString() == "Booking policies")
               { <text>style="color: white; background-color: #08C; border: 1px solid #08C;" </text> }
            href="@Url.Action("BookingPolicies", "Business")">Booking policies</a> 
    </li> 
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-3

75
推荐指数
5
解决办法
9万
查看次数

为什么我的隐藏输入写入:value ="value"而不是true/false?

我有一个MVC4站点,(作为隐藏表单的一部分):

<input name="somefield" type="hidden" value="@ViewBag.Test"/>
Run Code Online (Sandbox Code Playgroud)

价值ViewBag.Testtrue.表单字段将发布到表单的输入参数:

public ActionResult SomeAction(bool somefield = false, ...)
Run Code Online (Sandbox Code Playgroud)

somefield总是如此false.经过调查,我发现源代码有:

<input name="somefield" type="hidden" value="value"/>
Run Code Online (Sandbox Code Playgroud)

但是,我知道这曾经奏效.发生了什么事,我该怎么办?

asp.net asp.net-mvc-4

57
推荐指数
1
解决办法
9844
查看次数

剃刀查看引擎自动应用报价?

我现在已经习惯了剃刀,但我不明白为什么以下语法是正确的?

<li @(active ? "class=active" : "")>
   @Html.ActionLink(item.Text, item.TargetAction, Model.Controller)
</li>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,我有条件地应用了一个类(我用这种方式编写它,因此如果bool active == false则不生成类标记).

我无法理解的是,为什么这会产生正确的报价给出:

<li class="active"><a href="/">Home</a></li>
   <a href="/">Home</a>
</li>
Run Code Online (Sandbox Code Playgroud)

不知何故,它是神奇地整理引用,但我在剃刀的文章中找不到任何参考,以表明这是预期的,所以我想知道它是否依赖于破碎的行为.如果我在单词'active'周围的字符串中添加单引号或双引号,就像你想要的那样,如果你想要html,我最终得到:

<li class="'active'">
    <a href="/">Home</a>
</li>
Run Code Online (Sandbox Code Playgroud)

要么

<li class=&quot;active&quot;>
    <a href="/">Home</a>
</li>
Run Code Online (Sandbox Code Playgroud)

为什么它以这种方式工作,并且我的代码是正确的(而不是简单的功能)?

asp.net razor

27
推荐指数
2
解决办法
1万
查看次数

从ViewBag设置文本输入的值?ASP.NET MVC5

我从我的控制器传递一个变量ViewBag.crimeRef并使用它来显示一个工作正常的消息:

@if(ViewBag.crimeRef != null)
{
    <div class="alert alert-dismissable alert-danger">
      <button type="button" class="close" data-dismiss="alert">×</button>
      Sorry, there are no matching results for the crime reference <strong>@ViewBag.crimeRef</strong>. Please try searching again.
    </div>    
}
Run Code Online (Sandbox Code Playgroud)

我想我也可以使用相同的方法来填充输入的值,但是我收到了一个CS1002: ; expected错误:

<input type="text" class="form-control" maxlength="11" id="crimeRef" name="crimeRef" placeholder="Crime reference"
        @if(ViewBag.crimeRef != null) { value="@ViewBag.crimeRef" }>
Run Code Online (Sandbox Code Playgroud)

无论如何我可以使用ViewBag变量填充输入的值吗?

非常感谢

asp.net asp.net-mvc viewbag

4
推荐指数
1
解决办法
3万
查看次数

带有Html Helper的条件html属性

我正在使用Html助手创建一个复选框.在某些情况下,我想将该disabled属性添加到htmlAttribute对象中.我有以下代码:

@if (Model.IsAuthorized)
{
    @Html.CheckBoxFor(x => @Model.Property, new { @class = "input-class" })
}
else
{
    @Html.CheckBoxFor(x => @Model.Property, new { @class = "input-class", @disabled = "disabled" })
}
Run Code Online (Sandbox Code Playgroud)

我想让这段代码更简洁.有没有办法在一行中有条件地添加某些html属性/没有块条件?

c# asp.net-mvc html-helper razor

3
推荐指数
1
解决办法
3754
查看次数

有没有办法终止MVC Razor @:line?

考虑这个例子:

<input type="checkbox" @if (flag) { @: checked } />
Run Code Online (Sandbox Code Playgroud)

问题在于} />Razor引擎将其视为输出字符串的一部分.

我试过用括号但没有运气.

有没有办法@:在同一行中终止运算符,或者我必须将它拆分为其他行/使用三元运算符?

更新

如果值为true,我的请求的一个非常常见的用例可以是添加一个类:

<div class='container @(active ? "active")'/>
Run Code Online (Sandbox Code Playgroud)

因此,如果:三元运算符不存在,它会将其视为一元运算if符,但这只是一个愿望......

是我对C#UserVoice的建议.

c# asp.net-mvc if-statement razor razorengine

2
推荐指数
1
解决办法
649
查看次数

使用MVC,如何基于<td>中包含的日期将某个类格式化为<tr>?

我有一个MVC应用程序,显示Windows部署的进度.在我看来,我有一个表格,显示每个部署的当前状态.其中一个属性是最后一次部署签入('CurrentTime').我想改变如果CurrentTime超过4小时前的风格.

在我的MVC视图中,我试图做这样的事情:

@foreach (var item in Model)
{
    if(item.CurrentTime < DateTime.Now.AddHours(-4))
    {
        @:<tr class="warning">
    }
    else
    {
        @:<tr>
    }
Run Code Online (Sandbox Code Playgroud)

这不起作用.我收到一个解析器错误:

遇到没有匹配开始标记的结束标记"tr".您的开始/结束标签是否正确平衡?

什么是简单的方法(我只是学习MVC /网络编程)来实现这一目标?

c# asp.net-mvc view razor

0
推荐指数
1
解决办法
1212
查看次数