【问题标题】:ASP.NET MVC3 - Display accented string in TextBoxForASP.NET MVC3 - 在 TextBoxFor 中显示重音字符串
【发布时间】:2014-08-18 15:00:19
【问题描述】:

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

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

当我写作时

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

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

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

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

更新

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

@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 包含特殊字符,我将无法正确显示它。它已显示,但使用 HTML 表示,例如 &amp;#39;

【问题讨论】:

  • 我已经看到了这个答案,但我做不到@Html.TextBoxFor(HttpUtility.HtmlDecode(m => m.MyProperty))
  • 这里的第一个选项有什么问题?stackoverflow.com/a/8402310/2436549
  • 问题是该字段仍然显示为 L'avée。但是,当我在其上放置断点时,字符串是正确的并且包含我的重音字母。但是页面显示的时候,字段中包含HTML字符,不好。
  • 我做了一个测试应用程序并在下面提供了我的源代码。它完美地工作。 Upvodting Zsfars 评论是正确的。可能还有更多我们不知道的信息......但提供的信息可以回答问题。

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


【解决方案1】:

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

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


    }

【讨论】:

  • 就我而言,@Html.TextBox 行上有一个 NullReferenceException,因为 Model 为空。该字段在第 1 行以 @model MyModel 强类型化的部分视图中,会不会有问题?
  • 不看完整代码就很难说。但是,如果局部视图没有填充模型,那么无论是否对您的数据进行编码,都不应显示。
  • 模型已正确填充,它可以正常工作,除非该字段有重音字符。如果没有,则正确显示数据。填充这个模型的代码是基本的,我只是得到我的数据库对象并用它填充我的模型。我会深入调查,因为问题一定来自我的应用
  • 使用视图代码更新您的错误,因为您声明它正在填充部分视图。
  • 你能不能也包括你的控制器和调用部分视图的部分
猜你喜欢
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
相关资源
最近更新 更多