1

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

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

当我写

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

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

我已经看到了这个问题,但答案对我来说没有任何改变。

有没有办法用重音字母和引号正确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
  • MyModelSomeModel有财产_
  • SomeModel有一个MyField字段。

一切都从 DB 正确填充(相信我,它已经过测试和重新测试)。MyField但是,如果它有特殊字符,我无法正确显示。它已显示,但使用 HTML 表示,例如&#39;

4

1 回答 1

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);
        }


    }
于 2014-06-27T13:46:37.050 回答