0

我创建了一个 MVC-3 应用程序(一旦我们创建它,我们就会得到一个已经开发好的登录屏幕)。它使用工具箱中的 HTML 组件来创建文本框、标签等。但我想使用工具箱中的标准组件。如何用标准组件替换这些 HTML 组件。

当用户单击登录按钮时,用户名和密码在为我们提供的默认示例应用程序中得到验证。我不想更改它的功能,但我只想将表单组件更改为工具箱中的标准组件。

我怎样才能做到这一点 ?

<% using (Html.BeginForm()) { %>
    <%: Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") %>
    <div>
        <fieldset>
            <legend>Account Information</legend>

            <div class="editor-label">
                <%: Html.LabelFor(m => m.UserName) %>
            </div>
            <div class="editor-field">
                <%: Html.TextBoxFor(m => m.UserName) %>
                <%: Html.ValidationMessageFor(m => m.UserName) %>
            </div>

            <div class="editor-label">
                <%: Html.LabelFor(m => m.Password) %>
            </div>
            <div class="editor-field">
                <%: Html.PasswordFor(m => m.Password) %>
                <%: Html.ValidationMessageFor(m => m.Password) %>
            </div>

            <div class="editor-label">
                <%: Html.CheckBoxFor(m => m.RememberMe) %>
                <%: Html.LabelFor(m => m.RememberMe) %>
            </div>

            <p>
                <input type="submit" value="Log On" />
            </p>
        </fieldset>
    </div>
<% } %>
4

2 回答 2

1

你在说这些吗:

<%: Html.TextBoxFor(m => m.UserName) %>
<%: Html.ValidationMessageFor(m => m.UserName) %>

这些被称为 Html 助手。它们在 asp.net mvc 中用于生成与 mvc 模型绑定器配合使用的 html。如果你想用纯 html 替换它们,你总是可以查看源代码,查看渲染的 html 是什么并将其粘贴到它的位置,尽管我个人不明白这一点。这不会有什么好处。

但这就是上面两行呈现的内容:

<input data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="UserName" data-valmsg-replace="true"></span>
于 2013-02-12T22:03:57.513 回答
0

看看我是否理解,如果当你说标准控件时,你的意思是 ASP.NET 服务器端控件,我的意思是至少不使用 MVC,原因是因为就像混合苹果和香蕉一样,你必须使用 WebForms 或MVC,如果您选择 MVC,则必须将逻辑放在控制器中的特定操作上页面添加服务器端控件并将逻辑放在按钮的单击事件上,但是您不能混合 MVC 和 WebForms,这是没有意义的(我说这很好:))它们是不同的范例。

于 2013-02-12T21:58:46.763 回答