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

时间:2014-08-19 09:57:39

标签: 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>    
}

我认为我也可以使用相同的方法来填充输入值,但是我收到了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变量填充输入的值吗?

非常感谢

5 个答案:

答案 0 :(得分:12)

答案1: -

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

答案2: -

我在这里包含了尼克的答案,因为这是可接受的答案,因此它将帮助其他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指针!