我从控制器传递一个变量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>
}
我认为我也可以使用相同的方法来填充输入值,但是我收到了CS1002: ; expected
错误:
<input type="text" class="form-control" maxlength="11" id="crimeRef" name="crimeRef" placeholder="Crime reference"
@if(ViewBag.crimeRef != null) { value="@ViewBag.crimeRef" }>
无论如何我可以使用ViewBag变量填充输入的值吗?
非常感谢
答案 0 :(得分:12)
<input type="text" class="form-control" maxlength="11" id="crimeRef"
name="crimeRef" placeholder="Crime reference"
value="@(ViewBag.crimeRef ?? String.Empty)" >
我在这里包含了尼克的答案,因为这是可接受的答案,因此它将帮助其他stackoverflow用户在一个地方获得他们的问题的答案。
条件语句实际上是在MVC4中构建到Razor中的:
Conditional HTML Attributes using Razor MVC3
所以简单地使用它:
<input type="text" class="form-control" maxlength="11" id="crimeRef" name="crimeRef" placeholder="Crime reference"
value="@(ViewBag.crimeRef)">
只有在ViewBag.crimeRef
不为空时才会呈现值属性 - 完美!
答案 1 :(得分:1)
从引用中删除@ ViewBag.crimeRef并尝试此
<input type="text" class="form-control" maxlength="11" id="crimeRef" name="crimeRef" placeholder="Crime reference" value=@(String.IsNullOrEmpty(ViewBag.crimeRef)?ViewBag.crimeRef:String.Empty) />
答案 2 :(得分:1)
您目前尝试执行此操作的方式无法正常工作,value
不是服务器端变量,因此您无法像现在这样引用它。但是,你可以做一些更简单的事情
value='@(ViewBag.crimeRef ?? "")'
答案 3 :(得分:1)
<input type="text" class="form-control" maxlength="11" id="crimeRef" value="@((ViewBag.crimeRef==null)?0:ViewBag.crimeRef)" name="crimeRef" placeholder="Crime reference">
在Controller动作中
ViewBag.crimeRef = null; or ViewBag.crimeRef = 1;
答案 4 :(得分:1)
条件语句实际上是在MVC4中构建到Razor中的:Conditional HTML Attributes using Razor MVC3
所以简单地使用它:
<input type="text" class="form-control" maxlength="11" id="crimeRef" name="crimeRef" placeholder="Crime reference"
value="@(ViewBag.crimeRef)" }>
只有在ViewBag.crimeRef
不为空时才会呈现值属性 - 完美!
感谢Andrei指针!