如何将HTML代码传递给控制器​​

时间:2016-10-25 10:34:59

标签: javascript jquery ajax asp.net-mvc

我有一个问题,我使用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视图代码吗?如果可以的话,这是一个更好的解决方案吗?

3 个答案:

答案 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。这是更好的选择。

  1. JS方面:

    public override string ToString()
    {
        // Add your implementation
    }
    
  2. c#side:字符串到HtmlDocument。 String to HtmlDocument