使用键值参数将JSON对象传递给ASP.NET MVC控制器方法

我想知道是否可以将JSON数据传递到使用KeyValuePair类型作为参数的ASP.NET MVC控制器方法。 我在控制器方法中有一个关于stop变量的断点。 当我调试时,我有x和y的以下值:

x = 0

y = null

如何从JSON对象中正确填充keyValuePair变量?

 $(document).ready(function () { $.ajax({ contentType: 'application/json; charset=utf-8', dataType: 'json', type: 'POST', url: '@Url.Action("KeyValuePairTest", "Home")', data: JSON.stringify({ keyValuePair: { Key: 1, Value: 'some text' } }) }); });  using System.Collections.Generic; using System.Web.Mvc; namespace MvcApplication1.Controllers { public class HomeController : Controller { public ActionResult Index() { return View(); } public void KeyValuePairTest(KeyValuePair keyValuePair) { var x = keyValuePair.Key; var y = keyValuePair.Value; var stopper = "stop"; } } } 

使用自定义模型绑定器。 使用自定义模型绑定器时,您将可以访问表单集合,您可以在其中读取发布到控制器操作的原始数据。 获得数据后,可以将其映射到任何数据结构,包括键值对。 请看下面的post

使用动态.aspx页面ASP.NET MVC 3将数据保留回ViewModel