似乎无法弄清楚为什么这不起作用。我无法将参数发布到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中没有任何值。
更新:
答案 0 :(得分:0)
您可以执行以下操作
var parameterOne = 'test one';
var parameterTwo = 'test two';
$.ajax({
url: '/Testdrive/Methodone?parameterOne='+parameterOne+'¶meterTwo='+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 ();
}
查看结果:
答案 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