如何向Html.Kendo().Dialog()发送参数?

How to send parameters to Html.Kendo().Dialog()?

我需要发送一个参数给Html.Kendo().Dialog():

var diff = Num1 = Num2;
var msg = "The amiunt of " + diff + " will be subtracted" 

@(Html.Kendo().Dialog()
    .Title("Update")
    .Content("<p>" + msg + <p>")

但是那个构造不允许这样,说"msg"在当前内容中不存在

我该怎么做?

更新版本:

if ((Math.abs(newAmount) < Math.abs(Amount)) && newAmount != 0) {


    $("#dialog").kendoDialog({
        width: "400px",
        title: "Split Ticket Confirmation",
        closable: true,
        modal: true,
        content: "<div style='text-align: center'>" + msg + "</div>",
        actions: [
            {
                text: 'OK',
                action: function (e) {
                    $('.modal-content').html('');
                    $('#modal-container').modal('hide');
                    SaveData();
                },
                primary: true
            },
            {
                text: "CANCEL",
                action: function (e) {
                    $('.modal-content').html('');
                    $('#modal-container').modal('hide');
                    return false;
                },
                primary: true
            }
        ]
    }).data("kendoDialog").open();
}
else {
    SaveData();
}

使用 Razor HTML C# 语法,您可以通过这样做而不会出错:

@{
     var msg = "The amiunt of " + diff + " will be subtracted";
}

然后像您已经做的那样定期将其传递给内容。

如果您正在使用 JavaScript 并且真的想在脚本标签内使用该对话框,那么您可以这样做:

var dialog = $('#dialog'), undo = $("#undo");

undo.click(function () {
    dialog.data("kendoDialog").open();
    undo.fadeOut();
});

function onClose() {
    undo.fadeIn();
}
var diff = Num1 = Num2;
var msg = "The amiunt of " + diff + " will be subtracted";

dialog.kendoDialog({
    width: "400px",
    title: "Update",
    closable: false,
    modal: false,
    content: "<p>" + msg + "<p>",
    actions: [
        {
            text: "OK",
            action: function(e){
                // e.sender is a reference to the dialog widget object
                // OK action was clicked
                // Returning false will prevent the closing of the dialog
                return false;
            },
            primary: true
        },
        { text: 'Action 2' },
        { text: 'Action 3', primary: true }
    ],
    close: onClose
});

要为每个请求添加另一个操作,您可以对 Html.Kendo.Dialog() 构造执行以下操作:

@Html.Kendo.Dialog()
.Actions(actions =>
{
    actions.Add().Text("Ok").Action("onOkClick").Primary(true);
})

并在您的脚本标签中创建 JS 方法:

function onOkClick(e)
{
    //Do something
}

我正在做的是在打开对话框的事件中将部分内容写入页面:

function OpenDialog() {
        $.ajax({
            url: '@Url.Action("ItemSearch", "Invoice")',
            data: {
                PartNumber: dataItem.Id,
                AltPartNumber: 1,
                Description: 1,
                Application: 1
            },
            success: function (result) {
                $("#SearchDialogContainer").html(result);
            },
            error: function (result) {
                alert("An error occurred.");
            }
        });
    }
    
<div id="SearchDialogContainer"></div>

部分:

@model ParameterModel

@(Html.Kendo().Dialog()
    .Name("SearchDialog")
    .Title("Choose An Item To Add")
    .Content("<div class='k-textbox k-space-right search-wrapper'><input id='employees-search' type='text'  placeholder='Search employees' value='@Model.Property'/></div>")
    .Width(400)
    .Modal(true)
    .Visible(false)
    .Actions(actions =>
    {
        actions.Add().Text("Add Item").Primary(true);
        actions.Add().Text("Cancel");
    })
)

<script>
    $(document).ready(function () {
      $('#SearchDialog').data("kendoDialog").open();
    });
</script>