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

标签 c# asp.net-mvc kendo-ui

我有一个 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/

相关文章:

c# - 在编辑其值时访问 Datagridview 单元格值

c# - 使用 DisplayFormat 时未在 View 中设置日期格式

javascript - ASP.Net MVC - 使用 href 从 View 传递参数

javascript - 如何通过 jQuery 在 Select2 中获取额外的参数值?

c# - 指纹识别和验证 html 结构的最佳方法

c# - 内部类序列化为xml

c# - ASP MVC - 将 ViewModel 对象转换为另一种类型

html - 剑道多选

javascript - 0x800a138f - JavaScript 运行时错误 : The value of the property '' is null or undefined, 不是函数对象

filter - 如何使用 boolean 过滤器设置 KendoUi Grid 样式