【问题标题】:How to send json object to action in C# in @Url.Action如何在@Url.Action 中将 json 对象发送到 C# 中的操作
【发布时间】:2019-12-17 08:42:25
【问题描述】:

您好,我正在尝试向我的操作发送一个 json 对象,但我无法发送它。任何人都可以帮我解决这个问题。它驻留在其他控制器上

var pData = { id: null, StateCity: statecityName, Zip: zipcode, MaxDistance: maxdist, PhyName: phyName, ClickCnt: 0 };

window.location.href = '@Url.Action("Index", "Different", new { @pData=pData})';

这里pData 表示找不到。

我的行动DifferentController

public ActionResult Index(PData pData )
{
//some work
return view();
}

【问题讨论】:

  • 你在 url 中绝对需要 JSON 吗? QueryStringBinder 可以在不使用 json 的情况下绑定您的模型。
  • 如何绑定
  • 是的,但在这种情况下,我无法返回视图,在此方法中执行此过程后,我必须重定向到另一个控制器视图
  • @raghav 好吧,你可以在AJAXcall 之后执行此操作-在success 函数中,您可以重定向到所需的View。我已经更新了我的答案以反映这一点
  • @raghav 如果您想使用querystring 方法,我也更新了我的答案。

标签: javascript c# asp.net asp.net-mvc


【解决方案1】:

如果您找不到发送 Json 对象的解决方案,这里有一个使用查询字符串的解决方案,它可以为您提供页面重定向

var pData = '?StateCity='+ statecityName + '&Zip='+ zipcode + '&MaxDistance=' + maxdist + '&PhyName=' + phyName;
window.location.href = '@Url.Action("Index", "Different")' + pData;

并且在你的控制器动作方法中需要添加所有需要的参数而不是复杂的对象来绑定

[HttpGet]
public ActionResult Index(string stateCity, string zip, int maxDistance, string phyName)
{
    //work with your parameters
    return view();
}

根据需要在查询字符串和操作方法参数列表中添加或删除参数。这对你来说应该是完美的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多