使用T4MVC,如何在HTML表单上设置action属性

时间:2011-02-22 22:19:51

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

我正在使用jQuery提交Html表单,这是我的第一步。一切运作良好,但想使用T4MVC生成动作链接。

这适用于Html.BeginForm(和Ajax.BeginForm),因为它们将ActionResult作为生成参数的动作。即:

有办法吗?

<form method="POST" action="@MVC.???">

我想我能做到:

@using (Html.BeginForm(MVC.MyArea.MyController.MyAction(),...,new {@id="myForm"}))
        {
            // Inputs
        }

但是真的很奇怪T4MVC是否可以解决这个问题。怀疑不是,但我是新手,所以也许我错过了什么?

(是的,我知道Ajax.BeginForm,但我正在使用当前项目来了解有关MVC和jQuery的更多信息)。

2 个答案:

答案 0 :(得分:9)

以下内容应该有效:

<form method="POST" action="@Url.Action(MVC.MyArea.MyController.MyAction())">

或者如果您需要添加额外的路线值:

<form method="POST" action="@Url.Action(MVC.MyArea.MyController.MyAction().AddRouteValues(new { @id = "myForm" }))">

答案 1 :(得分:0)

我使用MVCFutures。然后,您可以执行以下操作:

@using (Html.BeginForm<ControllerController>(c => c.MyAction(null))) { // form }

表单通常会发布到c.Action(null),因为这些操作通常会绑定到模型,此处由null表示。

警告:MVC Futures BeginForm与MVCValidation(客户端)不能很好地协作。如果您使用的是jquery客户端验证,则不会出现问题。