【问题标题】:Pass data from Row into Javascript function将数据从 Row 传递到 Javascript 函数
【发布时间】:2015-07-09 15:55:29
【问题描述】:

我在 webgrid 行中有一个按钮,定义如下:

grid.Column("Fault", header: "Fault", format: (item) =>
            {
                if (item.Fault != null)
                {
                    return new HtmlString(string.Format("<input type='submit' id='btnShowFault' onclick='ShowFaultMessage({0})' value='Fault' />", item.Fault.Message));
                }

                return "";
            }))

这是我的 ShowFaultMessage 函数:

 function ShowFaultMessage(message) {

    $.ajax({
        url: '/Home/Message/',       
        data: message,
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        success: function (result) {
            var w = window.open("/Home/Message", "Fault Message", "width=400, height=400");
            $(w.document.body).html(result.responseText);
        }
    });
};

但这不起作用。我知道 item.Fault 是正确的,因为我的 If Block 在列定义中工作。但是当我单击按钮时,它会引发未定义的引用异常。我怎样才能使这项工作。我是 MVC 的新手,但是使用 xaml 可以很容易地完成这样的事情。我拒绝相信在 razor/mvc 中这是不可能的。

编辑:这是我加载弹出窗口视图的操作方法:

 public ActionResult Message(string faultMessage)
    {
        var model = new MessageViewModel { Message = faultMessage };
        return View(model);
    }

还编辑了我的其他代码块以显示它们的当前状态。

【问题讨论】:

    标签: javascript asp.net asp.net-mvc razor


    【解决方案1】:

    把return改写成这样

    return new HtmlString(string.format("<input type='submit' id='btnShowFault' onclick='ShowFaultMessage({0})' value='Fault' />", item.Fault));
    

    你需要使用string.format将值插入到字符串中

    【讨论】:

    • 所以故障是一个对象。 Message 是我需要的字符串属性。所以我做了你展示的,但在 string.format 中做了 item.Fault.Message。我现在收到一个错误:未捕获的参考错误:未定义“我的错误消息”。所以item.Fault.Message明明是通过了,但是它有问题。
    • 那必须是javascript。我会说它把它扔到 JSON.stringify 调用上。我不确定您要做什么,但 JSON.stringify 需要一个对象,然后将其转换为 json 字符串。
    • 这是一个js错误。我摆脱了 JSON 调用,它仍然显示该错误。我只是想将该 Message 字符串传递给 Home 控制器中的 Message 操作方法,以便为要显示的 Popup 构建模型。我真的认为这很容易,但似乎并非如此。
    • 我用您的更改和我的操作方法编辑了我的原始帖子。
    • 是在调用消息操作还是调用之前 javascript 失败?另外,为什么还要为此调用服务器呢?为什么不直接从 javascript 中弹出一个带有消息的窗口?
    猜你喜欢
    • 2021-06-03
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2016-02-08
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多