【发布时间】:2012-06-09 21:06:11
【问题描述】:
我有下一个场景:
我正在使用淘汰赛(2.1.0 版)和 ASP MVC.NET,所以在一个特定的点上,我的控制器调用了一个新视图。此视图在下次调用时呈现局部视图:
<div id="productSeriesNonSocks">
@{
Html.RenderPartial("~/Views/SalesOrderManagement/GetAvailableProductSeriesNonSocks.cshtml", Model);
}
</div>
控制器使用带有一些属性的 viewModel (Model) 调用视图,因此上述调用将整个模型发送到局部视图。
在局部视图中,我可以通过如下简单语句访问模型属性:
Available season type: @Model.SeasonType
问题从这里开始……局部视图有自己的淘汰模型:
<script type="text/javascript">
$(function () {
//activates KO
ko.applyBindings(productSeriesNonSocksModel);
GetDataFromModels();
});
var productSeriesNonSocksModel = {
AvailableProductSeriesNonSocks: ko.observableArray([]),
selectedProdSeries: ko.observable(),
seasonType: ko.observable()
};
function GetDataFromModels() {
$.get('/SalesOrderManagement/GetAvailableProductSeriesNonSocks', { seasonType: this.seasonType() }, function (data) {
productSeriesNonSocksModel.AvailableProductSeriesNonSocks(data.AvailableProductSeriesNonSocks);
});
}
</script>
GetDataFromModels() 函数应调用控制器中的方法,以 seasonType 作为参数,以检索正确的数组并将其放在 AvailableProductSeriesNonSocks 数组中。这里的问题是我不知道如何将属性模型(在本例中为 @Model.SeasonType)中的值传递给淘汰模型以调用控制器中的函数(productSeriesNonSocksModel.seasonType)。
我尝试通过以下方式传递值:
seasonType: ko.observable(@Model.SeasonType)
或
seasonType: @Model.SeasonType
但它不起作用。任何想法将模型属性值传递给敲除属性值以便使用 $.get(...) 进行调用?
为了澄清,我不能只询问值,因为该值(SeasonType)是用户在之前的视图中选择的。
提前谢谢你。
【问题讨论】:
-
在渲染的 html 中,@Model.SeasonType 显示了什么?
-
当前值Tyrsius,例如:“InSeason”,所以在模型中正确传递给局部视图。
-
... 这个值就是我需要为控制器进行调用的值。
标签: jquery asp.net-mvc knockout.js