如何访问RequireJS从PartialView传回的现有javascript对象
使用ASP.NETMVC、KnockoutJS和我正在使用RequiredJS 我有一个视图,我正在传回一个对象,该对象保留2个淘汰视图模型。为了保持简单,父视图是一个项目列表。您可以通过单击相应的按钮来创建新产品或编辑列表中的产品。任何一个按钮都将初始化jQuery对话框,该对话框通过从我的控制器获取返回的PartialView来填充 在检索部分视图时,我将一个淘汰视图模型(原始返回的RequireJS对象的属性)绑定到该部分视图。我在创建新产品、获取KO视图模型并将其保存回控制器操作方面没有问题 问题 当尝试将现有产品加载到PartialView时,会出现问题。我需要能够用初始值填充KO viewModel。一个可能的解决方案是,如果我可以将MVC视图模型从控制器传递到我现有的RequireJS对象中,我可以使用现有的属性值初始化KO viewmodel。但是,我不知道如何访问partialview视图中product list视图上返回的现有的javascript对象 我能在partialview上获得MVC模型的唯一错误方法是在partialview上连接Require JS,并传回对象的一个新实例,然后在MVC模型中传递,但这只会中断当前jQuery对话框对原始对象的调用 示例: 父产品列表视图如何访问RequireJS从PartialView传回的现有javascript对象,javascript,asp.net-mvc,knockout.js,requirejs,Javascript,Asp.net Mvc,Knockout.js,Requirejs,使用ASP.NETMVC、KnockoutJS和我正在使用RequiredJS 我有一个视图,我正在传回一个对象,该对象保留2个淘汰视图模型。为了保持简单,父视图是一个项目列表。您可以通过单击相应的按钮来创建新产品或编辑列表中的产品。任何一个按钮都将初始化jQuery对话框,该对话框通过从我的控制器获取返回的PartialView来填充 在检索部分视图时,我将一个淘汰视图模型(原始返回的RequireJS对象的属性)绑定到该部分视图。我在创建新产品、获取KO视图模型并将其保存回控制器操作方面没有
......bunch of html
</li>
</ul>
</div>
@{
<script type="text/javascript">
require(['jquery', 'items/adminItemsList', 'jquery-validate-unobtrusive' ], function ($, viewModel) {
$(function () {
viewModel.initialize({
addUrl: '@Url.Action("Add")',
listUrl: '@Url.Action("List")',
editUrl: '@Url.Action("Edit")',
deleteUrl: '@Url.Action("Delete")'
});
});
});
....bunch of Html
</div>
</div>
<script type="text/javascript">
viewModel.Model(@Html.Json(Model)) //I need to be able to do something like this
</script>
…一堆html
@{
require(['jquery','items/adminItemsList','jqueryvalidate unobtrusive',函数($,viewModel){
$(函数(){
viewModel.initialize({
addUrl:“@Url.Action(“Add”)”,
listUrl:“@Url.Action(“List”)”,
editUrl:“@Url.Action(“Edit”)”,
deleteUrl:'@Url.Action(“删除”)'
});
});
});
}
jQuery对话框部分视图
......bunch of html
</li>
</ul>
</div>
@{
<script type="text/javascript">
require(['jquery', 'items/adminItemsList', 'jquery-validate-unobtrusive' ], function ($, viewModel) {
$(function () {
viewModel.initialize({
addUrl: '@Url.Action("Add")',
listUrl: '@Url.Action("List")',
editUrl: '@Url.Action("Edit")',
deleteUrl: '@Url.Action("Delete")'
});
});
});
....bunch of Html
</div>
</div>
<script type="text/javascript">
viewModel.Model(@Html.Json(Model)) //I need to be able to do something like this
</script>
…一堆Html
viewModel.Model(@Html.Json(Model))//我需要能够像这样做
Json方法只是一个HtmlHelper扩展
如何将返回的RequireJS对象设置为可访问的,或者如何更好地进行设计
我有并需要:
想法?我最后做的是拆分我的视图模型(因为实际上有两个不同的视图),并在一个视图模型上传递渲染的MVC模型对象,我将其设置为ViewModel之外的可访问公共属性,以便其他ViewModel的共享组件可以对其进行访问和序列化。您是否考虑过从服务器获取JSON格式的产品,并让knockout使用其自己的模板进行渲染?是的,但由于我使用的是客户端验证,使用的是数据注释,如果不将模型传递到视图中,我不确定如何做到这两个方面(但很容易做到)。