C# 使用MVC从asp加载新视图
好的,现在的情况是我在我的索引页上。我有一个jQuery onClick事件,如下所示: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并加载一个新的视图,
$('#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。。。。然后,如何将数据一直填充到实际的登录页?