加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在部分视图中强制使用没有Html.BeginForm / Ajax.Beg

发布时间:2020-12-15 19:59:05 所属栏目:asp.Net 来源:网络整理
导读:当我将部分表单放在局部视图中时,除了局部视图中的表单元素之外,所有表单部分都会获得无阻碍语法. 我发现如何“应用”无阻碍语法的唯一方法是在局部视图中启动另一个表单. 视图: @using (Ajax.BeginForm("SubmitHandler",new DefaultAjaxOptions())){ @Html
当我将部分表单放在局部视图中时,除了局部视图中的表单元素之外,所有表单部分都会获得无阻碍语法.

我发现如何“应用”无阻碍语法的唯一方法是在局部视图中启动另一个表单.

视图:

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

PartialView:

@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中的input元素具有无阻碍语法,而部分视图没有…

有没有办法在局部视图中应用无阻碍语法,这不需要你开始一个新的表单?

解决方法

我实际上找到了更好的解决方案在asp.net mvc代码中挖掘了一下,MvcForm类创建了所有无阻碍的验证语法.

所以如果你使用:

@using(new MvcForm(ViewContext))
{
}

代替

@using(Html.BeginForm())
{
}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读