KnockoutJS从选择屏幕进入编辑/添加屏幕

时间:2012-12-06 20:27:24

标签: asp.net-mvc-3 knockout.js knockout-mapping-plugin

我刚刚开始学习KnockoutJS,请原谅我,如果这个问题看起来很傻,但是使用ASP MVC 3框架如何从我的选择屏幕中获取信息到我的添加/编辑视图中。

基本上我已经使用MVCScaffold为我拥有的每个模型构建一个基本控制器,其中包含Index,Create,Edit,_CreateEdit和其他几个视图。这在使用模型时工作正常,因为控制器创建它们并将它们传递到我的视图中,但现在我正在尝试使用Knockout,所以我认为我不应该传递模型但是在视图中使用$ get来获取数据要在视图上显示的服务器。这就是说,一旦我从我的选择视图进入编辑/添加屏幕,我怎么知道使用$ get函数获取哪条记录。我还是应该将一些信息传递给模型吗?似乎必须有一个比这更好的方法。我只是不确定最佳做法。

此外,我有一个添加和编辑屏幕,但都使用_CreateEdit的局部视图,所以如果我在创建或编辑视图中创建我的视图模型,如何访问它或将其传递给我的部分视图?

1 个答案:

答案 0 :(得分:0)

取决于,您是否尝试将RazorKnockout一起使用?如果是这样,那么你处于混合状态,其中某些东西可能来自Razor - 模型,有些可能来自ajax调用。

我猜你的$get应该是$.get()。我们称之为Ajax电话

另一方面,如果你想要更纯粹Knockout,那么你可能会改用WebAPI Controller

如果您想从Controller可以轻松阅读的mvc Knockout返回一个模型,请执行以下操作:

if (this.Request.IsAjaxRequest()) return Json(model,JsonRequestBehavior.AllowGet);