我有一个问题,我使用MVC,我正在尝试在数据库字段中保存HTML视图代码。我在我的MVC解决方案的JS方面有以下代码:
var data = { id_perizia: $("#id_perizia").val(), pinSessione: $("#pin_sessione").val(), saveRegistration: flgSave, markup: document.documentElement.innerHTML }
$.ajax({
type: "POST",
url: WebPerizie.baseUrl + "Registra/stopRecording",
data: data,
success: function (resp) {
window.location.href = WebPerizie.baseUrl + "PT_PERIZIE/Edit/" + $("#id_perizia").val();
},
failure: function () {
//console.log("Failed:::" + resp);
},
error: function (e) {
//console.log("Status code Error==="+e.status);
},
});
我的控制器功能参数是:
public ActionResult stopRecording(decimal id_perizia, string pinSessione, bool saveRegistration, byte[] markup)
我在调试器中输入,但是我不明白,因为标记变量总是为空。当我在浏览器控制台中使用命令时:
$("html").html();
或
document.documentElement.innerHTML
我总是在标记变量中获取页面的HTML代码,但在控制器中我有null。我有错误的感觉是将变量标记传递给控制器,并且标记变量在JS代码中具有正确的值。你怎么看待这件事?我错了什么?我可以直接从控制器获取HTML视图代码吗?如果可以的话,这是一个更好的解决方案吗?
答案 0 :(得分:0)
您应该使用Html 表单标记 像这样传递
var data= $( "form" ).serialize();
$.ajax({
type: "POST",
url: WebPerizie.baseUrl + "Registra/stopRecording",
data: data,
success: function (resp) {
window.location.href = WebPerizie.baseUrl + "PT_PERIZIE/Edit/" + $("#id_perizia").val();
},
failure: function () {
//console.log("Failed:::" + resp);
},
error: function (e) {
//console.log("Status code Error==="+e.status);
},
});
答案 1 :(得分:0)
有很多可能性。
首先检查你是否在alert()
中获取html,并在C#代码中使用字符串作为html(删除字节)。并且还使用验证错误
如下面的代码
[ValidateInput(false)]
public ActionResult stopRecording(decimal id_perizia, string pinSessione, bool saveRegistration, string markup)
希望这会帮助你
答案 2 :(得分:0)
您可以将字符串变量传递给控制器,并将字符串转换为控制器端的HtmlObject。这是更好的选择。
JS方面:
public override string ToString()
{
// Add your implementation
}
c#side:字符串到HtmlDocument。 String to HtmlDocument