Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MVC从asp加载新视图_C#_Jquery_Asp.net Mvc_Controller_Views - Fatal编程技术网

C# 使用MVC从asp加载新视图

C# 使用MVC从asp加载新视图,c#,jquery,asp.net-mvc,controller,views,C#,Jquery,Asp.net Mvc,Controller,Views,好的,现在的情况是我在我的索引页上。我有一个jQuery onClick事件,如下所示: $('#example').on('click', 'tr', function (e) { var aData = oTable.fnGetData(this); showCampaign(aData); }); 我已经验证了该函数是否按预期工作,aData最后填充了一个数组,其中包含表行中单击的每个单元格的数据 我需要做的是,当这个点击发生时,将数据发送到我的MVC并加载一个新的视图,

好的,现在的情况是我在我的索引页上。我有一个jQuery onClick事件,如下所示:

$('#example').on('click', 'tr', function (e) {
    var aData = oTable.fnGetData(this);
    showCampaign(aData);
});
我已经验证了该函数是否按预期工作,aData最后填充了一个数组,其中包含表行中单击的每个单元格的数据

我需要做的是,当这个点击发生时,将数据发送到我的MVC并加载一个新的视图,我可以用该数据填充该视图。这就是我目前正在尝试的

function showCampaign(aData) {
    $.ajax({
        type: "POST" ,
        url: "Test/Show",
        data : aData
   }).done(function (response) {
        window.location.href = response.Url;
   }).error(function (jqxhr, textstatus, errorthrown) {
        alert("didn't work");
   });
};
此函数在某种程度上起作用。。。它确实向我的MVC发送请求。。。但是我没有看到数据通过(它的null),当我返回响应字符串时,页面不会加载

我的控制器类中的方法如下所示:

[HttpPost]
public ActionResult ShowCampaign(String[] aData)
{
   var redirectUrl = new UrlHelper(Request.RequestContext).Action("TestView","Test");
   return Json(new {Url : redirectUrl });
}
出于上述目的,TestView是我要加载的视图的名称,Test是控制器


我在这里做错了什么。。我试图理解MVC,但我还不明白。。。灯还没亮

这里的问题是您没有命名参数。如果你说aData是一个数组,你必须把它包装成一个对象。属性应与控制器方法的参数名称匹配

function showCampaign(aData) {
$.ajax({
    type: "POST" ,
    url: "Test/ShowCampaign",
    data: { aData: aData }
}).done(function (response) {
    window.location.href = response.Url;
}).error(function (jqxhr, textstatus, errorthrown) {
    alert("didn't work");
   });
};

你可能会发现另一个有用的提示。您可以使用
Url.Action()
生成Url

我按照您的建议将数据封装在一个对象中,效果很好。在这一点上,我得到了一个url响应回来,它试图重定向,因为我会期待。。。。。但是它说找不到资源给定的url是localhost:“port”/Test/TestView我已经在解决方案资源管理器下验证了我的index.aspx和TestView.aspx都位于视图中的Test文件夹下。。。我遗漏了什么?您的项目中是否有一个名为TestController的控制器?该控制器名为TestController,这就是ShowCampaign()函数所在的位置。该控制器是否还有一个名为TestView的方法?这就是调用localhost/Test/TestView的地方。其中应该有
返回视图()行。这很有效。。。非常感谢。最后一个小问题。。。我将封装的数组发送到控制器中的HttpPost函数。。。然后返回重定向url作为Json。。。。然后,如何将数据一直填充到实际的登录页?