我刚刚开始学习KnockoutJS,请原谅我,如果这个问题看起来很傻,但是使用ASP MVC 3框架如何从我的选择屏幕中获取信息到我的添加/编辑视图中。
基本上我已经使用MVCScaffold为我拥有的每个模型构建一个基本控制器,其中包含Index,Create,Edit,_CreateEdit和其他几个视图。这在使用模型时工作正常,因为控制器创建它们并将它们传递到我的视图中,但现在我正在尝试使用Knockout,所以我认为我不应该传递模型但是在视图中使用$ get来获取数据要在视图上显示的服务器。这就是说,一旦我从我的选择视图进入编辑/添加屏幕,我怎么知道使用$ get函数获取哪条记录。我还是应该将一些信息传递给模型吗?似乎必须有一个比这更好的方法。我只是不确定最佳做法。
此外,我有一个添加和编辑屏幕,但都使用_CreateEdit的局部视图,所以如果我在创建或编辑视图中创建我的视图模型,如何访问它或将其传递给我的部分视图?
答案 0 :(得分:0)
取决于,您是否尝试将Razor
与Knockout
一起使用?如果是这样,那么你处于混合状态,其中某些东西可能来自Razor
- 模型,有些可能来自ajax调用。
我猜你的$get
应该是$.get()
。我们称之为Ajax
电话
另一方面,如果你想要更纯粹Knockout
,那么你可能会改用WebAPI Controller
。
如果您想从Controller
可以轻松阅读的mvc Knockout
返回一个模型,请执行以下操作:
if (this.Request.IsAjaxRequest()) return Json(model,JsonRequestBehavior.AllowGet);