gpt4 book ai didi

c# - ASP .NET MVC KendoUI,如何将可观察的 viewModel 属性传递给 MVC Action?

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:36 24 4
gpt4 key购买 nike

我有一个 View 模板,它能够显示来自 kendo.observable View 模型的数据。但是,作为 View 模板的一部分,我想呈现一个接受参数的局部 View 。如何将参数传递给操作?

在下面的例子中,

<div data-bind="text: data.name"></div> 

有效。现在,如何将 data.name 传递给

@Html.Action("_Discounts", "GroupBuys", new { name = data.name }) 

//数据绑定(bind)到viewmodel的View Template

<script id="details-template" type="text/x-kendo-template">
<div class="details">
<div class="info-container">
<div data-bind="text: data.name"></div>
<div data-bind="text: data.description"></div>
${data.name} //This by itself works
@Html.Action("_Discounts", "GroupBuys", new { name = ${data.name} }) //Doesn't work
</div>
</div>
</script>

// Controller Action 接受参数“名称”

public ActionResult _FindName(string name)
{
...
}

我试过:

@Html.Action("_Discounts", "GroupBuys", new { name = @:data.name }) 
@Html.Action("_Discounts", "GroupBuys", new { name = @:"${data.name}" })
@Html.Action("_Discounts", "GroupBuys", new { name = ${data.name} })

似乎没有一个有效。任何帮助将不胜感激。

最佳答案

@Html.Action("_Discounts", "GroupBuys", new { name = ${data.name} })

请记住这是服务器端代码。它将在 kendo JavaScript 开始在浏览器中运行之前呈现在页面上,因此此时您的 kendo.observable View 模型不存在。

即使您使用 Kendo MVC 绑定(bind)也是如此,因为它们所做的只是在页面上呈现 JavaScript。

我的建议是为您的部分执行 Ajax 调用,并在 ajax 成功后使用返回的 HTML 修改您的模板。

$.ajax({
url: 'YourURL',
data: { name: "name" },
dataType: 'html',
success: function (html) {
$("#selectDivForReturnedHtmlInKendoTemplate").replace(html);
var template = kendo.template($('#details-template'));
renderTemplate(template);
},
error: function (e) {
ajaxError(e);
}
});

关于c# - ASP .NET MVC KendoUI,如何将可观察的 viewModel 属性传递给 MVC Action?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24413441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com