Javascript 在提交到服务器MVC之前创建预览页面

Javascript 在提交到服务器MVC之前创建预览页面,javascript,asp.net-mvc,jquery,asp.net-mvc-4,Javascript,Asp.net Mvc,Jquery,Asp.net Mvc 4,我是.NETMVC的新手,我正在尝试通过单击按钮创建一个预览页面,预览是在新窗口中显示页面,而不是提交页面。如果页面正常,则提交它。 假设我在Html中有这个 在JQuery中 $('#PreviewURL')。单击(函数(){$('.IsPreview').val(true);提交表单();窗口。打开(this.href);}) 但是没有将变量IsPreview=true(我需要它来在控制器部分使用此变量),并且返回的内容不会在新窗口中打开。收集所有元素和值并使其只读,然后在对话框中显示:)

我是.NETMVC的新手,我正在尝试通过单击按钮创建一个预览页面,预览是在新窗口中显示页面,而不是提交页面。如果页面正常,则提交它。 假设我在Html中有这个

在JQuery中

$('#PreviewURL')。单击(函数(){$('.IsPreview').val(true);提交表单();窗口。打开(this.href);})


但是没有将变量IsPreview=true(我需要它来在控制器部分使用此变量),并且返回的内容不会在新窗口中打开。

收集所有元素和值并使其只读,然后在对话框中显示:)


类似于此演示的内容:

为了获得最佳用户体验,我建议不要在新窗口中打开预览,而是打开jQuery模式对话框。在对话框中添加提交和取消按钮。这将是简单和快速的

但如果仍然要打开新窗口,则流将如下所示:

  • 创建一个ajax post请求并将所有内容发布到一个控制器(比如预览)。这里保存会话中的值。返回响应中的任何标志。
  • 请求1成功后,打开新页面(如预览),该页面将显示会话中的所有值。此页面UI将具有所有已发布的值&一个提交按钮
  • 单击submit,它实际上将发布值

  • 您可以对两个POST请求使用相同的控制器,您的标志IsPreview将位于AJAX请求的标题中,并且不可用于预览页面。这个解决方案似乎很费时。

    我有很多信息要预览,我想是从表单开始的,我必须在一个新窗口中显示结果,我尝试了你所说的,但只出现在父页面的顶部谢谢。我能够通过引用我所有20个输入的巨大div来实现这一点。它在预览对话框中显示了所有这些内容。呜呼。我经历了最艰难的一段时间,试图联系每一个输入div和内容。真有意思。克隆(真的)。尤其是“真的”。它复制引用的div的所有html。IsPreview的html是什么?
    <div id='infor'> <span>enter name:</span> 
        <input id="nametext" type="text" />
    </div>
    <div id='previewDiv'>&nbsp;</div>
    <a href='#' id='opendialog'>click here to preview</a>
    
    $("#opendialog").click(function () {
    
         var clonetext = $('#infor').clone(true);
         $('#previewDiv').html(clonetext);
         $('#previewDiv input').attr('readonly', 'readonly');
         $("#previewDiv").dialog("open");
         return false;
     });
     $("#previewDiv").dialog({
         autoOpen: false,
         open: function () {},
         show: "blind",
         hide: "explode"
     });