【问题标题】:Using Html.BeginForm inside section razor layout在节剃刀布局内使用 Html.BeginForm
【发布时间】:2014-08-24 04:01:37
【问题描述】:

我有一个包含两个部分的 _Layout 页面:@RenderSection("LeftContent", False)@RenderSection("MainContent", False)

所有使用此布局的另一个页面都可以完美地工作,除了提交不做任何事情,我的意思是提交不调用 HttpPost:

@ModelType iSAM.PROVINCIA

@Code
    ViewData("Title") = "Create"
    Layout = "~/Views/Shared/_Layout.vbhtml"
End Code

@section LeftContent
    Add navigation menu
End Section

@section MainContent
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    @Using Html.BeginForm()
        @Html.ValidationSummary(True, "Error al crear el registro. Revise los errores e intente nuevamente.")

    @<fieldset>
        <legend>Fields</legend>
        <p>
            @Html.LabelFor(Function(Model) Model.DESC_PROVINCIA, "Name:")
            @Html.TextBoxFor(Function(Model) Model.DESC_PROVINCIA, New With {.style = "text-transform:uppercase"})
        </p>
        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>

    @<div>
            @Html.ActionLink(" ", "ListProvincias", "_Layout", New With {.area = ""}, New With {.class = "imgBack", .title = "Back"})
    </div>

    End Using
End Section    

如果我将代码留在 MainContent 部分 之外,它会起作用。有办法让它在本节中工作吗?
问候。

【问题讨论】:

  • 你为什么有@&lt;fieldset&gt;@&lt;div&gt;
  • 否则我会得到错误:属性说明符不是一个完整的语句。使用续行将属性应用于以下语句

标签: asp.net-mvc asp.net-mvc-3


【解决方案1】:
<input type="submit" value="Save" runat="server" />

删除 runat="server" 它应该可以正常工作。旧的网络表单习惯很难改掉 =​​ )

编辑:

虽然上述是一个问题,但它不是问题的根源。这里的问题是在 MasterPage 和内容部分中都有一个 @Html.BeginForm,这意味着定义了两种形式,因此导致在内容部分中定义的一种不起作用。

【讨论】:

  • 这通常是问题所在。是否抛出了 javascript 错误?是否有可能验证失败并且不显示消息?
  • 一切正常,正如我所说,如果我把 section 放在外面,HttpPost 就会被调用
  • 如果 MasterFile 的 MainContent 部分已经定义了一个表单,那么您将定义该表单两次:一次在布局中,然后一次在节定义中。
  • 在表单中包含表单总是会搞砸一些事情。您可以删除母版页中@Html.BeginForm() 的第一个实例吗?
  • 好的。我从布局中删除了表单,它可以工作。非常感谢您的支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多