c# - 使用 TextBoxFor 截断字符串

标签 c# asp.net-mvc asp.net-mvc-3

在我们的 ASP.Net MVC 3 应用程序中,当字符串值包含双引号时,我们的表单上的字符串会被截断。

例如,给定一个文本框:

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

如果用户输入字符串:'Hampshire"County',当将值渲染回表单时,只会显示字符串'Hampsire'。如果我检查模型中的值,双引号会被转义作为“汉普郡”“县”。在 Fiddler 中,发布的值是正确的,并且该值正确存储在数据库中,因此它似乎与将文本框呈现给客户端的 Html 帮助程序有关。

任何人都可以阐明这一点吗?

最佳答案

我无法重现这个问题。刚刚创建了一个新的 MVC 3 项目,创建了一个具有 2 个操作(GET 和 POST)的 Controller ,具有类型化 View ,接收具有字符串属性 Text 的对象,并将其显示在表单中......一切都按预期进行。没有问题。我输入的所有内容都会发布,并在 POST 中正确返回。

查看

@model MvcApplication1.Models.MyClass
@{
    ViewBag.Title = "Home";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Home</h2>
@using (Html.BeginForm())
{
    @Html.TextBoxFor(m => m.Text)
}

Controller

public class HomeController : Controller
{
    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(MyClass data)
    {
        return View(data);
    }
}

型号

public class MyClass
{
    public string Text { get; set; }
}

所以,问题一定出在其他地方......可能会扰乱正在呈现的值(编辑器模板、javascript)

尝试查看渲染页面的来源,看看那里的值是否正确,如果正确,那么它必须是javascript,否则,它必须是服务器中的东西。

关于c# - 使用 TextBoxFor 截断字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20212477/

相关文章:

c# - 无法从 Viewbag 项目中检索属性

asp.net-mvc - MVC 3 中的流畅验证和集合验证问题

c# - ASP.NET 网络 API : any downsides to asynchronous operations?

c# - 使用 browserify 运行 ReactJS.NET

c# - 通过模型 MVC 加载时数据表的隐藏详细信息选项

jquery - Textarea 没有在 jQuery 中获取更新的文本

asp.net-mvc-3 - HttpContext.Current.Session 在 Asp.net MVC 3.0 中混淆

c# - 找不到合适的方法来覆盖

C# 缺少 MSVCR100.dll

javascript - 加载 Spinner - 即使在滚动页面时也始终保持在屏幕中间