在部分剃刀布局中使用Html.BeginForm

时间:2011-02-01 20:39:37

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

我有一个_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    

如果我将代码留在主要内容部分之外,则可以使用。有一种方法可以让它在这一部分内工作吗? 问候。

1 个答案:

答案 0 :(得分:2)

<input type="submit" value="Save" runat="server" />

删除runat =“server”,它应该可以正常工作。旧网络形式的习惯很难消失=)

修改

虽然以上是一个问题,但它不是问题的根源。这里的问题是MasterPage和内容部分中都有@Html.BeginForm,这意味着定义了两个表单,从而导致内容部分中定义的表单不起作用。