将数据从Row传递到Javascript函数

时间:2015-07-09 15:55:29

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

我在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);
    }

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

1 个答案:

答案 0 :(得分:0)

将返回重写为类似

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

您需要使用string.format将值插入字符串