剃刀无法正确渲染视图模型元素

时间:2016-05-17 18:35:29

标签: c# asp.net-mvc razor

我有一个输入元素,值来自我的视图模型

<input id="modifyRuleCity" name="City" type="text" class="form-control" placeholder="City" value=@Model.City>

viewmodel中的值是“旧金山”,但出于某种原因,Francisco部分正在被删除。以下是呈现的HTML的样子。

<input id="modifyRuleCity" name="City" type="text" class="form-control" placeholder="City" value="San" francisco>

我试过

value="@Model.City"

value=@Model.City

但没有运气它仍然砍掉弗朗西斯科。 我查看了该值,并且在viewmodel中的字符串中没有看到任何“

3 个答案:

答案 0 :(得分:2)

引号。

<input id="modifyRuleCity" name="City" type="text" class="form-control" placeholder="City" value="@Model.City">

<input id="modifyRuleCity" name="City" type="text" class="form-control" placeholder="City" value='@Model.City'>

答案 1 :(得分:2)

据我了解: -

  1. value = "@Model.City"应该适合你,除非你不会在另一个地方犯错误。
  2. 如果城市包含&#34;或者&#39;你可以尝试value = "@Html.Raw(Model.City)"
  3. 如果它仍然不适合您,您可以尝试@Html.EditorFor(m => m.City, new { htmlAttributes = new { @id = "modifyRuleCity", @class = "form-control", Name = "City", PlaceHolder = "City" } })
  4. 希望它对你有所帮助。

答案 2 :(得分:0)

如果您使用 Razor ,那么我建议使用HTML帮助程序,例如 EditorFor ,并将其与 lambda表达式结合使用,如下所示:

@Html.EditorFor(model => model.City, new { htmlAttributes = new { @id = "modifyRuleCity", @class = "form-control", @name = "City", @placeholder = "City"} })

将呈现与<input type="text" />

相同的内容