Asp.net mvc 3 “装载”;敲除。映射“;使用require.js的插件
我正在使用requireJS创建一个MVC3应用程序。在我的视图中,我需要将模型对象转换为剔除视图模型对象。所以我需要使用knockout和knockout.mapping库 我的应用程序设计如下: 1) 。所有脚本文件都分类到文件夹中Asp.net mvc 3 “装载”;敲除。映射“;使用require.js的插件,asp.net-mvc-3,requirejs,Asp.net Mvc 3,Requirejs,我正在使用requireJS创建一个MVC3应用程序。在我的视图中,我需要将模型对象转换为剔除视图模型对象。所以我需要使用knockout和knockout.mapping库 我的应用程序设计如下: 1) 。所有脚本文件都分类到文件夹中 Scripts/app/home/-包含主控制器中视图的脚本 Scripts/lib/-包含jQuery、knockout、knockout.mapping、requirejs等脚本 2) 。在“_Layout.cshtml”中,我像这样引用了“requir
- Scripts/app/home/-包含主控制器中视图的脚本
- Scripts/lib/-包含jQuery、knockout、knockout.mapping、requirejs等脚本
<script src="@Url.Content("~/Scripts/lib/require.js")" type="text/javascript"></script>
4) 。这是我的index.js文件,位于“Scripts/app/home/”中
}))
5) 。这是我在“主”控制器中的“索引”操作方法
public ActionResult Index()
{
var person = new Person
{
Id = 1,
Name = "John",
Addresses = new List<Address>(new[]{new Address{Country = "Country 1", City = "City 1"}})
};
return View(person);
}
public ActionResult Index()
{
var person=新的人
{
Id=1,
Name=“John”,
地址=新列表和
非常感谢您的帮助和建议。谢谢!
我也有同样的问题。问题是knockout.mapping定义了一个knockout依赖项,所以在加载脚本时需要满足这个依赖项
下面是您应该如何加载映射内容
require.config(
{
baseUrl: "/Scripts/",
paths:{
jquery: "lib/jquery-2.0.3",
knockout: "lib/knockout-2.3.0",
komapping: "lib/knockout.mapping"
},
shim: {
komapping: {
deps: ['knockout'],
exports: 'komapping'
}
}
});
然后在我的例子中,我使用一个index.js文件和一个requirejs调用,如下所示
requirejs(['jquery', 'knockout', 'komapping'], function($, ko, komapping){
ko.mapping = komapping;
//Do other stuff here
});
.我尝试使用此解决方案,但出现错误。
@model MMS.Web.Models.Person
<script type="text/javascript">
require(["/Scripts/common/common.js"], function () {
require(["app/home/index"], function (indexJS) {
var person = new indexJS.Person();
var vm = person.getPersonViewModel(@Html.Raw(Json.Encode(Model)));
});
});
</script>
require.config(
{
baseUrl: "/Scripts/",
paths:{
jquery: "lib/jquery-2.0.3",
knockout: "lib/knockout-2.3.0",
komapping: "lib/knockout.mapping"
},
shim: {
komapping: {
deps: ['knockout'],
exports: 'komapping'
}
}
});
requirejs(['jquery', 'knockout', 'komapping'], function($, ko, komapping){
ko.mapping = komapping;
//Do other stuff here
});