【发布时间】:2015-04-03 17:05:46
【问题描述】:
在初始加载我的 MVC 项目后,我无法加载另一个视图。我正在使用 ajax 调用在名为 SlideView 的控制器中运行名为 SlideLayoutView 的方法。
这里是ajax调用:
$.ajax({
url: "/SlideView/SlideLayoutView",
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(id),
success: function (result) {
},
});
这是它的路线:
//slide layout view
routes.MapRoute("SlideViewPage",//Route name
"SlideView/SlideLayoutView/{id}",//URL
new { controller = "SlideView", action = "SlideLayoutView", id = UrlParameter.Optional },// paramter defaults
new[] { "ChootaAuthor.web.Controllers" });
这是 SlideViewController 中的方法:
public ActionResult SlideLayoutView(int id = 0)
{
ViewBag.Message = "Slide View Page";
var model = new SlideViewModel();
model.slideID = 1;
model.slideTitle = "test";
return View("SlideLayoutView", model);
}
如果我运行视图本身,它可以正常工作。如果我使用 /SlideView/SlideLayoutView/-1 导航到它,它工作正常。但是如果我返回视图,它不应该也能正常工作吗?请帮忙
【问题讨论】:
-
我不太明白您遇到的问题。您的代码可以正常工作,但是您在 DOM 中注入视图的部分丢失了。这就是您的 AJAX
success函数的全部内容吗?你如何插入你的result? -
应该是
data: { id: 1 },(假设你想将1传递给控制器) -
id 顺利通过,返回 View 被命中。我认为 return View 会显示视图,从那时起我需要做些什么吗?
-
对于临时解决方案,我已经硬编码了网址,但不希望它保持这样
-
你的ajax成功回调中
result的值就是你返回的视图。你想用它做什么?
标签: c# ajax model-view-controller asp.net-mvc-5 asp.net-mvc-views