C# 在Div中引用@Section脚本
在C# 在Div中引用@Section脚本,c#,asp.net,asp.net-mvc,razor,knockout.js,C#,Asp.net,Asp.net Mvc,Razor,Knockout.js,在div中调用@节脚本{…}时出现问题。目前,它声明未捕获错误:未知组件的产品选择器 问题:如何从div中调用我的partial,以便它将内容放在页面顶部附近 给我问题的代码部分: @section scripts{ @Html.Partial("ProductChooserScript", Model) } 查看:ProductSelector @使用(Html.BeginForm()) { @*在这里失败*@ @节脚本{ @Html.Partial(“ProductChooser
div
中调用@节脚本{…}
时出现问题。目前,它声明未捕获错误:未知组件的产品选择器
问题:如何从div中调用我的partial,以便它将内容放在页面顶部附近
给我问题的代码部分:
@section scripts{
@Html.Partial("ProductChooserScript", Model)
}
查看:ProductSelector
@使用(Html.BeginForm())
{
@*在这里失败*@
@节脚本{
@Html.Partial(“ProductChooserScript”,模型)
}
}
函数ProductSelectionViewModel(数据){
var self=这个;
//这里还有其他javascript/淘汰逻辑。。。
}
$(函数(){
window.viewModel=newproductselectionviewmodel(@Html.Json(Model));
ko.applyBindings(window.viewModel,$(“#productForm”)[0])
})
附加说明:
@section scripts{
@Html.Partial("ProductChooserScript", Model)
}
如果我移除div
周围的@section scripts{…}
并将其放在页面底部,它会呈现部分,但部分会呈现在页面底部(不是期望的结果),我希望它呈现在顶部附近
请注意我做了研究。。。其他来源没有解决此问题。
RenderSection
,都会渲染该部分
其次,您只能在布局或视图中定义使用布局的部分。局部视图无法定义剖面,因为局部视图不引用布局。首先,视图代码中定义剖面的位置与任何内容都没有关系。换句话说,仅仅因为您在该div中定义了它,并不意味着该部分的内容将在那里结束。无论布局在何处调用
RenderSection
,都会渲染该部分
其次,您只能在布局或视图中定义使用布局的部分。局部视图无法定义剖面,因为局部视图不引用布局。经过进一步研究,我能够解决我的问题。该错误与我的
淘汰版有关。。。我将@section scripts{…}
移动到视图的底部,然后创建了一个div
,id为productChooser
以前,我的ko.components.register…
追加了正文
,该正文在页面底部呈现。更改myproductChooser
的附加后,它将按预期呈现
我的视图:ProductSelector
@使用(Html.BeginForm())
{
}
函数ProductSelectionViewModel(数据){
var self=这个;
//这里还有其他javascript/淘汰逻辑。。。
}
$(函数(){
window.viewModel=newproductselectionviewmodel(@Html.Json(Model));
ko.applyBindings(window.viewModel,$(“#productForm”)[0])
})
@节脚本{
@Html.Partial(“ProductChooserScript”,模型)
}
ProductChooserScript
<script type="text/javascript">
(function (){
ko.components.register('product-chooser', {
viewModel: {
createViewModel: function (params) {
var chooserModel = new ViewModel(params);
var modalHtml = $('#product-chooser-template').html();
$('#productChooser').append(modalHtml);
var el = $('#MyModal')[0];
ko.applyBindings(chooserModel, el);
initializeControl(chooserModel);
return chooserModel;
}
},
template: $('#product-chooser-preview-template').html()
});
})();
</script>
(功能(){
ko.components.register('product-chooser'{
视图模型:{
createViewModel:函数(参数){
var chooserModel=新视图模型(参数);
var modalHtml=$(“#产品选择器模板”).html();
$('#productChooser').append(modalHtml);
var el=$('#MyModal')[0];
ko.应用绑定(chooserModel,el);
初始化控件(选择模型);
返回选择器模型;
}
},
模板:$(“#产品选择器预览模板”).html()
});
})();
经过进一步研究,我能够解决我的问题。该错误与我的淘汰版有关。。。我将@section scripts{…}
移动到视图的底部,然后创建了一个div
,id为productChooser
以前,我的ko.components.register…
追加了正文
,该正文在页面底部呈现。更改myproductChooser
的附加后,它将按预期呈现
我的视图:ProductSelector
@使用(Html.BeginForm())
{
}
函数ProductSelectionViewModel(数据){
var self=这个;
//这里还有其他javascript/淘汰逻辑。。。
}
$(函数(){
window.viewModel=newproductselectionviewmodel(@Html.Json(Model));
ko.applyBindings(window.viewModel,$(“#productForm”)[0])
})
@节脚本{
@Html.Partial(“ProductChooserScript”,模型)
}
ProductChooserScript
<script type="text/javascript">
(function (){
ko.components.register('product-chooser', {
viewModel: {
createViewModel: function (params) {
var chooserModel = new ViewModel(params);
var modalHtml = $('#product-chooser-template').html();
$('#productChooser').append(modalHtml);
var el = $('#MyModal')[0];
ko.applyBindings(chooserModel, el);
initializeControl(chooserModel);
return chooserModel;
}
},
template: $('#product-chooser-preview-template').html()
});
})();
</script>
(功能(){
ko.components.register('product-chooser'{
视图模型:{
createViewModel:函数(参数){
var chooserModel=新视图模型(参数);
var modalHtml=$(“#产品选择器模板”).html();
$('#productChooser').append(modalHtml);
var el=$('#MyModal')[0];
ko.应用绑定(chooserModel,el);
初始化控件(选择模型);
返回选择器模型;
}
},
模板:$(“#产品选择器预览模板”).html()
});
})();