将参数传递给Action方法

时间:2011-05-28 12:45:26

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

我有一个像这样的动作方法

public JsonResult Create(Product p, string extra)

视图绑定到@model Product

在通过ajax调用调用Create action时,我从表单中获取Product P值,但extra总是为null,尽管extra是相同的形式

<input type="text" name="extra" />

我也试过Request.Form [“extra”]它也是null。我错过了什么?如何在action方法中获取input [name = extra]的值?

1 个答案:

答案 0 :(得分:0)

你没有提到你是如何调用这个动作的(除了说AJAX显然是不够的),所以假设你有一个表示产品的HTML表单和一个包含一些额外值的输入字段:

@model Product
@using (Html.BeginForm())
{
    @Html.EditorForModel()

    <input type="text" name="extra" value="some extra value" />

    <input type="submit" value="Create" />
}

你可以不引人注意地AJAX化这样的形式:

$('form').submit(function() {
    $.ajax({
        url: this.action,
        type: this.method,
        data: $(this).serialize(),
        success: function(result) {
            // TODO: handle the results of the AJAX call
        }
    });
    return false;
});