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

Nic*_*ick 4 asp.net asp.net-mvc viewbag

我从我的控制器传递一个变量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变量填充输入的值吗?

非常感谢

Kar*_*sla 13

答案1: -

<input type="text" class="form-control" maxlength="11" id="crimeRef" 
name="crimeRef" placeholder="Crime reference" 
value="@(ViewBag.crimeRef ?? String.Empty)" >
Run Code Online (Sandbox Code Playgroud)

答2: -

我在这里包括Nick的答案,因为这是可接受的答案,因此它将帮助其他stackoverflow用户在一个地方获得他们的问题的答案.

条件语句实际上是在MVC4中构建到Razor中的:

使用Razor MVC3的条件HTML属性

所以简单地使用这个:

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

如果ViewBag.crimeRef不是null,只会渲染value属性- 完美!