ASP.NET MVC3 - 在TextBoxFor中显示带重音的字符串

时间:2014-06-27 13:19:05

标签: asp.net asp.net-mvc-3 non-ascii-characters html.textboxfor

我正在开发一个ASP.NET MVC3项目。

在基本更新页面中,我正在尝试将数据库中记录的数据显示为某些TextBoxFor。但是,数据可以包含一些特殊字符,例如引用'或重音字母,例如é

写作时

@Html.TextBoxFor(m => m.MyProperty)

显示的文字看起来像L'avée而不是L'avée

我见过this question,但答案对我没有任何改变。

有没有办法在TextBoxFor中用重音字母和引号显示我的字符串正确

更新

此字段位于仅包含此字段的部分视图中:

@model MyApp.Models.SomeModel

<div class="form-group">
    @Html.LabelFor(m => m.MyModel.Submodel.MyProperty)
    @Html.TextBoxFor(m => m.MyModel.Submodel.MyProperty, new { @class = "form-control", @id = "txtMyProperty" })*@
</div>

在这里,SomeModel被正确显示(相信我)。

  • SomeModel具有MyModel属性。
  • MyModel有一个SomeModel属性
  • SomeModel有一个MyField字段。

所有内容都由DB正确填充(相信我,它已经过测试和重新测试)。 但是,如果它有特殊字符,我无法正确显示MyField。它会显示,但使用像&#39;

这样的HTML表示

1 个答案:

答案 0 :(得分:2)

他在评论中提供的链接是正确的答案。

@Html.TextBox("test", HttpUtility.HtmlDecode(Model.MyProperty))

正常工作。

我的观点

@model MvcApplication1.Models.SomeModel

@{
    ViewBag.Title = "title";
}
<h2>title</h2>
@{ Html.RenderPartial("Partial"); }

我的部分视图

@model MvcApplication1.Models.SomeModel

<div class="form-group">
     @{
         Model.MyProperty = System.Web.HttpUtility.HtmlDecode(Model.MyProperty);
     }
    @Html.LabelFor(m => m.MyProperty)
    @Html.TextBoxFor(m => m.MyProperty, new { @class = "form-control", @id = "txtMyProperty" })
</div>

我的控制器

   public class HomeController : Controller
    {
        public ActionResult Index()
        {
            SomeModel model = new SomeModel
                {
                    MyProperty = "L&#39;av&#233;e"
                };
            return View(model);
        }


    }