没有太多运气,我在Razor中有以下if/else语句,效果很好
<small>
@if(deletedView){
@:Deleted
}
else {
@:Created
} by
</small>
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
<small>
@(deletedView) ? @:Deleted : @:Created by
</small>
Run Code Online (Sandbox Code Playgroud)
但那失败了.什么是正确的语法?
我是MVC的新手.我希望能够为某些用户隐藏一些动作链接.假设我有一个"创建"动作链接,我只希望管理员查看并单击.我想在asp.net中使用某种"loggedmpmplate",但它似乎不适用于剃须刀.
我可以使用某种代码块和if语句检查当前用户及其角色,但这可能不是最佳做法?
我的index.cshtml ..
// want some adminauth attribute here...
@Html.ActionLink("Create New", "Create")
Run Code Online (Sandbox Code Playgroud)
我的控制器..
// GET: /Speaker/Create
[Authorize(Roles = "Administrators")]
public ActionResult Create()
{
return View();
}
Run Code Online (Sandbox Code Playgroud) 我在我的视图中使用它,并希望它只显示"是"或"否",但显示 False?"yes":"No"
@myPosts.Contains(item.ID)?"Yes":"No"
Run Code Online (Sandbox Code Playgroud)
这里有什么不对?
我正在学习Bootstrap,无法将所选项目置于"活动"状态.活动状态保留在默认项目上.新选择/单击的项目会暂时变为活动状态,但会恢复原状.我已阅读所有帖子,仍然无法使此代码生效.我正在使用MVC5和JQuery 2.1.
编辑: 如果我将li的hrefs更改为href ="#",则正确应用活动类.加载新视图时会发生什么?我认为塞巴斯蒂安的回应很接近,但是对于区域而言却变得混乱.
标记
<div class="navbar-wrapper">
<div class="container">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-header">
<a class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="navbar-brand" href="#">Test</a>
</div>
<div class="btn-group pull-right">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<i class="icon-user"></i>Login
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Profile</a></li>
<li class="divider"></li>
<li><a href="#">Sign Out</a></li>
</ul>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="~/Home">Home</a></li>
<li><a href="~/Home/About">About</a></li>
<li><a href="~/Student">Students Sample</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul …
Run Code Online (Sandbox Code Playgroud) 我想写一些类似的东西:
@( checkCondition ? "<span class='label'>Right!</span>" : "")
Run Code Online (Sandbox Code Playgroud)
但它显示的是源代码而不是HTML,有一种简单的方法可以做到这一点吗?
谢谢!
我试图在Razor中使用三元运算符,类似于这个问题,但我想输出的内容包含空格.这段代码
@(selectedGoal == null ? "" : "value=" + selectedGoal.Name)
Run Code Online (Sandbox Code Playgroud)
应该产生
value="Goal 3"
Run Code Online (Sandbox Code Playgroud)
由于selectedGoal.Name的值为"目标3".相反,我得到了
value="Goal" 3
Run Code Online (Sandbox Code Playgroud)
这不好.我已经尝试了一堆不同的转义引号,@符号和没有@符号的组合,我只是无法让它工作,即
@(selectedGoal == null ? "" : "value=" + "selectedGoal.Name")
@(selectedGoal == null ? "" : "value=@selectedGoal.Name")
Run Code Online (Sandbox Code Playgroud)
然后我就得到类似的东西
value="selectedGoal.Name"
Run Code Online (Sandbox Code Playgroud)
谁知道应该怎么做?
我试图做以下但它的错误,所以我显然在做Razor语法错误:
<td>@{item.Licence.MachineId != null ? @:"TB Master" : @:"HandHeld"} </td>
Run Code Online (Sandbox Code Playgroud) 我试图在这段代码中使用三元运算符,其Model.FirstTechSupportAssigneeElapseTime
类型为TimeSpan?
:
<dt>Assigned In</dt>
<dd>
@if (@Model.FirstTechSupportAssigneeElapseTime == null)
{ @:N/A }
else
{ @Model.FirstTechSupportAssigneeElapseTime }
</dd>
Run Code Online (Sandbox Code Playgroud)
我试图实现三元运算符,但我失败了,@的处处让我感到困惑.在这种情况下,是否可以拥有三元运算符?
谢谢.
我试图回答这个问题:
使用Html.ActionLink; 这样的事情:
@(ViewData["page"] == "Page1" ? "Page1" : Html.ActionLink("Page 1", "Page1", "Index"))
Run Code Online (Sandbox Code Playgroud)
这可能吗?
使用带有Razor视图引擎的三元组时遇到一些麻烦.
我的模型有一个字符串属性.如果该字符串属性为null,我想null
在视图中呈现.如果属性不为null,我希望它使用前导和尾随呈现属性值'
.
我怎样才能做到这一点?
更新:对不起,稍微改了一下问题.
考虑这个例子:
<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的建议.
razor ×10
asp.net-mvc ×5
c# ×4
asp.net ×3
if-statement ×1
inline-if ×1
razorengine ×1
timespan ×1
view ×1