我在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);
}
还编辑了我的其他代码块以显示其当前状态。
答案 0 :(得分:0)
将返回重写为类似
return new HtmlString(string.format("<input type='submit' id='btnShowFault' onclick='ShowFaultMessage({0})' value='Fault' />", item.Fault));
您需要使用string.format将值插入字符串