【问题标题】:KnockoutJS getting from selection screen to edit / add screenKnockoutJS 从选择屏幕获取编辑/添加屏幕
【发布时间】:2012-11-24 23:22:28
【问题描述】:

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

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

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

【问题讨论】:

  • 我确信有很多方法可以实现这一点,但我正在努力寻找未来此类事情的最佳实践

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


【解决方案1】:

取决于,您是否尝试将RazorKnockout 一起使用?如果是这样,那么您处于混合情况,其中一些内容可能来自 Razor - 模型,而另一些可能来自 ajax 调用。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多