我想将几个输入值作为json字符串发布到控制器,只有一个方法参数,例如:
<input name="x" value="">
<input name="y" value="">
public void GetAsJson(string json)
{
}
这样做没有jQuery和默认的模型绑定?
答案 0 :(得分:0)
在没有任何Javascript的情况下执行你所说的是不可能的。使用JSON,JS代表Javascript,无论如何都需要Javascript来执行Ajax调用。
我会这样做。
请记住,在C#方面你并不真正接受JSON对象,实际上你只是接受一个列表。
这是你想要的帖子。它几乎是一个像你建议的字符串,但不同之处在于,在你的AJAX调用中,你需要指定JSON.stringify和dataType:json。
public ActionResult FruitPost(List<String> Fruit)
{
return null;
}
以下是观点:
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
function submitForm() {
var fruit = ["apple", "orange", "bananna"];
jQuery.ajax({
type: "POST",
url: "@Url.Action("FruitPost")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(fruit),
success: function (data) { alert(data); },
failure: function (errMsg) {
alert(errMsg);
}
});
}
</script>
<input type="button" value="Click" onclick="submitForm()"/>
如果你在没有JQuery的情况下进行ajax调用时是DEAD SET ...我建议你阅读:https://www.sitepoint.com/guide-vanilla-ajax-without-jquery/
这样做之后,你可能会改变主意。