asp.net - 在局部 View 中强制使用无 Html.BeginForm/Ajax.BeginForm 的无障碍语法

标签 asp.net validation asp.net-mvc-3 partial unobtrusive-javascript

当我将表单的一部分放在局部 View 中时,除局部 View 中的表单元素外,所有表单部分都将获得无障碍语法。

我发现如何“应用”无障碍语法的唯一方法是在局部 View 中启动另一种形式。

看法:

@using (Ajax.BeginForm("SubmitHandler", new DefaultAjaxOptions()))
{
    @Html.EditorFor(m => m.Name)
    @Html.Partial("MyPartialView", Model)
}

部分 View :
@Html.TextBoxFor(m => m.SomeContent)

输出:
<input class="text-box single-line" data-val="true" data-val-required="This field is required." id="Name" name="Name" type="text" value="">
<input id="SomeContent" name="SomeContent" type="text" value="0">

所以只有来自 View 的输入元素具有无障碍语法,而局部 View 没有......

有没有办法在局部 View 中应用无障碍语法,而无需您开始新表单?

最佳答案

我实际上找到了更好的解决方案!深入研究了 asp.net mvc 代码,MvcForm 类创建了所有无障碍的验证语法。

所以如果你使用:

@using(new MvcForm(ViewContext))
{
}

代替
@using(Html.BeginForm())
{
}

它仍然会应用无障碍语法,但不会创建表单 html 标签:)

关于asp.net - 在局部 View 中强制使用无 Html.BeginForm/Ajax.BeginForm 的无障碍语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4815388/

相关文章:

asp.net - 是否可以使用 Visual Studio Web 发布到 Azure Web App 来部署单个 aspx.cs 文件(Azure 运行时问题)

javascript - 关注每个 jQuery 函数

python - 如何添加验证特征/规则?

asp.net - MVC 3 Razor - Html 列表中的下拉列表

c# - System.Web.UI.Page 类中的事件和虚拟方法

asp.net - 在简单明了的 HTML5 选择元素中发出警告

css - 如何在不使用单独的 CSSClass 的情况下设置 asp 控件的样式?

javascript - 正则表达式无法验证 28 到 31 之间的日期

asp.net-mvc-3 - 带有模型的 Razor 布局

c# - 如何为 ASP.NET MVC3 创建全局自定义错误页面?