gpt4 book ai didi

c# - 如何将javascript字典发送到MVC4中的 Controller 方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:26 25 4
gpt4 key购买 nike

我有一个 js 文件,它必须向服务器发送一个字典对象。我的 javascript 部分看起来像这样:

$.ajax({
url: "/ControllerName/ActionName",
type: 'post',
dataType: 'json',
data: myData
});

myData 类似于

this myData["favouritePet"] = "dog", myData["favouriteBook"] = "What?"

在 Controller 中我有这个:

[HttpPost]
public virtual ActionResult ActionName ( Dictionary<string, string> jsonFormattedData)
{


return null;
}

但是当我调试它时,参数每次都会得到一个空值。我试图制作字符串类型的参数,但它是一样的。你能帮我吗?

最佳答案

您只是传递 JavaScript 对象,因此您可以使用 JSON.stringify 并将模型作为 Action 参数。

MVC Model Binder 会将其转换为您的模型。

enter image description here

public class MyDataModel
{
public string FavouritePet { get; set; }
public string FavouriteBook { get; set; }
}

// GET: Home
public ActionResult Index()
{
return View();
}

[HttpPost]
public ActionResult Index(MyDataModel myData)
{
return View();
}

<button id="btnSubmit" type="button">Submit</button>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$("#btnSubmit").click(function () {
var myData = new Object();
myData.favouritePet = "dog";
myData.favouriteBook = "What?";

$.ajax({
url: '@Url.Action("Index", "Home")',
type: 'POST',
dataType: 'json',
data: JSON.stringify(myData),
contentType: "application/json; charset=utf-8",
success: function (){}
});
});
</script>

关于c# - 如何将javascript字典发送到MVC4中的 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27905635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com