【问题标题】:use textbox correctly without textboxfor helper in asp.net mvc?在 asp.net mvc 中没有 textboxfor helper 的情况下正确使用文本框?
【发布时间】:2013-02-09 13:09:16
【问题描述】:

我不喜欢自动生成的代码,所以我决定从不使用 Asp.net MVC 的 Html Helpers,但是在验证失败后保存输入值时我遇到了问题,所以值是使用时保存

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

但我写的时候不保存值

<input type="text" name="Name"/>

那么我如何在不使用 TextBoxFor Helper 的情况下拥有相同的东西,以及这个助手做了什么,我没有

【问题讨论】:

    标签: asp.net-mvc validation html-helper


    【解决方案1】:

    我不喜欢自动生成的代码,所以我决定不使用 Asp.net MVC 的 Html Helpers

    如果您不使用帮助程序,您将很难进行 ASP.NET MVC 开发,而且恐怕您不会走得太远。您不仅会遇到诸如设置输入字段值之类的事情,而且还会在您的输入字段上发出 HTML5 data-* 属性以进行诸如不显眼的客户端验证之类的事情,所有事情都由 HTML 助手自动处理。

    如果您发现以下色情内容更具可读性,您可以随时在您的视图中执行以下色情内容:

    <input type="text" name="Name" value="@Html.Raw(HttpUtility.HtmlAttributeEncode(Model != null ? Model.Name : ""))" />
    

    但我不知道为什么我更喜欢写@Html.TextBoxFor(m =&gt; m.Name)。我不知道,也许这只是个人喜好问题。

    但要回答您的问题,您可以在没有助手的情况下执行 ASP.NET MVC。只是你可能会觉得这是一种非常不愉快的经历。

    【讨论】:

    • 谢谢,但还有一个问题,为什么当我手动编写 @Html.TextBoxFor(m => m.Name) 生成的相同内容时它不起作用
    • 因为 HTML 助手已经考虑了模型。助手正是为此目的而设计的。助手中内置了这样的逻辑。它将检查您的模型属性是否具有值并在输入标签上发出相应的值属性。它还将注意正确编码此值,以免破坏您的标记等。
    • 我如何阅读帮助模板,以确切了解它的作用(我总是在浪费时间学习基础设施的工作原理,而其他人则学习如何使用它,这太神奇了)
    • HTML 助手是extension method。没有模板。您将不得不查看相应的 C# 代码。由于 ASP.NET MVC 源代码可用,您可以随时查看它:aspnetwebstack.codeplex.com/SourceControl/changeset/view/… 或者只需使用 Reflector 等工具直接从 System.Web.Mvc 程序集浏览它。
    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    相关资源
    最近更新 更多