【发布时间】:2014-10-17 23:50:51
【问题描述】:
我有这个 AngularJs http.post-function。在我看来,我有一个 Id:s 列表。当我点击任何这些 Id:s 时,这个函数就会被命中。
$scope.GoToSinglePost= function (id) {
console.log(id);
if (confirm("Go to blogPost with " + id + " ?")) {
$http.post("/Home/SingleBlogPost", { postId: id });
}
};
这里一切正常,这篇文章让我看到了我的 mvc c# actionresult 女巫是下面这个:
public ActionResult SingleBlogPost(int? postId)
{
var singlePost = _repo.GetSinglePost(postId);
var viewModel = new SingleBlogPostViewModel()
{
Post = singlePost
};
return View(viewModel);
}
在此 ActionResult 中,我从 angularPost 发送的 postId 进入参数 int? postId
actionResult 开始渲染,如果我调试它,我可以看到它会进入它的视图(SingleBlogPost.cshtml)
但是如果我在浏览器中观看会发生什么,一切都保持不变。我仍然在我从一开始的相同观点。为什么我的 SingleBlogPost Actionresult-view 不在浏览器中呈现?为什么我仍然在同一页面上,即使 SingleBlogPost 方法被击中并且在我调试时仍然显示它的视图?
//谢谢
【问题讨论】:
-
您必须添加一个事件处理程序来处理数据。 angular 不会自动知道你想对响应做什么。请参阅此处的“一般用法”部分:docs.angularjs.org/api/ng/service/$http
-
你为什么首先使用 AngularJS 和 ASP.NET? AngularJS 旨在处理所有模板,因此将它与服务器生成的动态 HTML 一起使用几乎没有意义。 Angular 的方式是仅使用 ASP.NET 作为业务后端,为 Angular 生成数据以进行渲染。 WebApi 是你应该用来补充 Angular 的。
-
@crhis 使用 ASP.NET 作为 Angular 后端的原因有很多,关于解耦的整个故事,你已经制作了一个后端,你想与其他应用程序共享你的后端,等等。在我的工作中,我已经看到了这个金融业务的解决方案,所以它毕竟不是那么疯狂
-
也许吧,但是在服务器端和客户端都有一个 MVC 框架会增加很多复杂性。你应该有充分的理由来证明这一点。如果只是关于数据绑定,还有更多轻量级的 Angular 替代品,它们不会尝试成为成熟的 MVC 框架。
-
@chris 我需要在我的项目中使用 MVC 框架。您建议将数据绑定到我的 MVC 控制器而不是使用 angularJs 的替代方法是什么?我首先拥有 Angular 的原因是我通过 angularJs 即时搜索呈现了我的 Id:s 列表。我发现 angular-instantSearch 非常有用
标签: c# javascript asp.net-mvc angularjs