Json使用Parameters发布到MVC控制器

时间:2014-12-05 17:46:02

标签: ajax asp.net-mvc json post

似乎无法弄清楚为什么这不起作用。我无法将参数发布到MVC控制器方法:

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<input id="Button1" type="button" value="button" onclick="CallMethodone()" />

<div id="result"></div>

<script>

    function CallMethodone() {

        var detailsURL = '/Testdrive/Methodone';

        var request = {
            'parameterOne': "test one",
            'parameterTwo': "test two"
        };

        $.ajax({
            url: detailsURL,
            contentType: "applicaton/json",
            type: "POST",
            data: JSON.stringify(request),
            dataType: "json",
            success: successFunc,
            error: errorFunc
        });

        function successFunc(response, status) {
            //alert(data + " " + status);
            $("#result").text(response.result);
        }

        function errorFunc(xhr, status) {
            alert("error");
        }

    }

</script>

我的控制器方法是这样的:

    [HttpPost]
    [AllowAnonymous]
    public ActionResult Methodone(string parameterOne, string parameterTwo)
    {
        return View();
    }

parameterOne或parameterTwo中没有任何值。

更新:

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作

var parameterOne = 'test one';
var parameterTwo = 'test two';
$.ajax({
    url: '/Testdrive/Methodone?parameterOne='+parameterOne+'&parameterTwo='+parameterTwo,
    contentType: "applicaton/json",
    type: "POST",
    success: successFunc,
    error: errorFunc
});

或试试这个:

在代码中:data:JSON.stringify(request)...删除JSON.stringify,

应该是这样的:

数据:请求,

另一个细节是它的目标。

var request = {
     'parameterOne', "one test"
     'parameterTwo': "test two"
};

在其中你输入了2个参数,然后在它的方法中你必须得到两个参数。

public ActionResult Method (String parameterOne, String parameterTwo)
{
     return View ();
}

查看结果:

http://tinypic.com/r/r0t2z8/8

答案 1 :(得分:0)

你应该为参数创建一个类,试试这个:

[Serializable]
public class Your_Class_Name {
  public string parameterOne {get; set;}
  public string parameterTwo {get; set;}
}

在控制器:

[HttpPost]
[AllowAnonymous]
public ActionResult Methodone(Your_Class_Name parameters)
{
  // Badass code here
}

希望它有效= D