22

我有编辑操作Html.BeginForm。如何添加 HTML 属性?

我只知道一种方法:

@using (Html.BeginForm("Edit", "Clients", FormMethod.Post, new { @class="example"})) {

}

但如果我使用这种方法,我无法传递当前 ID

是否可以在不修改操作 URL 的情况下向表单添加 HTML 属性?

4

4 回答 4

38

您需要的覆盖是:

@using( Html.BeginForm("Edit", "Clients", new { Id=Model.Id},
                       FormMethod.Post, new { @class = "example" } ) )
{
}
  • 像“id”这样的路由值作为第三个参数传递。
  • 像“class”这样的 HTML 属性作为第五个参数传递。

请参阅MSDN文档。

于 2012-10-25T15:00:20.873 回答
18

Action 和 Controller 参数也可以为 null 以使用默认操作:

Html.BeginForm( null, null, FormMethod.Post, new { id=”formname”, @class="formclass" })
于 2018-03-03T20:49:44.817 回答
2

从 ControllerA 通过 ActionLink 调用

@using (Html.BeginForm("Create",
    "StudentPChoice",
    new { StudentPChoiceId = Model.StudentPChoiceId },
    FormMethod.Post))
{

}

或者

@using (Html.BeginForm("Create",
    "ControllerB",
    new { ControllerBId = Model.ControllerAId },
    FormMethod.Post))
{

}
于 2012-12-22T05:56:20.907 回答
0

如果这可能对某些人有帮助,这对我有用:

@using (Html.BeginForm("RefreshData", "Home", FormMethod.Post, 
        new { Id = "timerangeId", @name = "timerange" }))
    {
        // form elements and input
    }

在 Javascript 中:

document.getElementById("timerangeId").submit();
于 2019-02-10T17:33:22.940 回答