У меня есть кнопка в WebGrid строке определяется как например:передать данные из строки в функции Javascript
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 работает в определении столбца. Но когда я нажимаю кнопку, она генерирует неопределенное ссылочное исключение. Как я могу сделать эту работу. Я новичок в MVC, но что-то вроде этого очень просто с помощью xaml. Я отказываюсь верить, что это невозможно в бритве/mvc.
EDIT: Это мой метод действия для загрузки вид всплывающее окно:
public ActionResult Message(string faultMessage)
{
var model = new MessageViewModel { Message = faultMessage };
return View(model);
}
отредактированы также другие мои блоки кода, чтобы показать их текущее состояние.
Так Fault является объектом. Сообщение - это свойство строки, которое мне нужно от него. Поэтому я сделал то, что вы показали, но сделал item.Fault.Message в файле string.format. Теперь я получаю сообщение об ошибке: Неподготовленная эталонная ошибка: «My Fault Message» не определена. Таким образом, item.Fault.Message явно передается, но у него есть проблема с ним. –
Является ли C# или javascript, бросающим ошибку? – Casey
Это должен быть javascript. Я бы сказал, что он бросает его на вызов JSON.stringify. Я не уверен, что вы пытаетесь сделать, но JSON.stringify ожидает объект, который затем превращается в строку json. – Casey