javascript - 如何在回发窗口中显示 ViewData 的内容?

标签 javascript asp.net-mvc

我想在模式窗口上显示 ViewData 的内容,在我的例子中它包含字符串。 为此,我在我看来使用了以下代码。

<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<p>
    To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
<form runat = "server">
<div onload = "poponload('<%=ViewData["sample"].ToString()%>')">
  <input type="submit" value="show" id="submitBtn"/>
</div>
<script type="text/javascript" language="Javascript">
  function poponload(msg) {
    alert(msg.toString().length);
    if (msg.toString().length > 0) {
      my_window = window.open("",
  "mywindow1", "status=1,width=350,height=150");
      my_window.document.write(msg.toString());
    }
  }
</script>
</form>

Controller 包含如下简单的操作方法。

public ActionResult Index()
    {
      ViewData["Message"] = "Welcome to ASP.NET MVC!";
      return View();
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(FormCollection collection)
    {
      ViewData["Message"] = "Welcome to ASP.NET MVC!";
      ViewData["sample"] = "My name is kaps";
      return View();
    }

我想使用 Window.open() 显示 ViewData["sample"] 的内容。 但是这段代码无法向我显示所需的输出。谁能告诉我如何实现它?

谢谢。

最佳答案

我建议使用 javascript 库,例如 JQuery。有许多模态弹出插件可以使这类事情变得非常简单。

我最喜欢的一个是 Simple Modal埃里克·马丁。下面是如何使用它来显示 ViewData 的示例。

<script type="text/javascript" language="Javascript">
     $(document).ready(function() {
         $("#sample").modal();
     });        
</script>
<div id="sample"><%=ViewData["key"]%></div>

编辑:

要使用 window.open 见下文。但是,这不是模态弹出窗口,因为它存在于新的浏览器窗口中。这可能会被弹出窗口拦截器拦截,所以我不会这样做。

<script type="text/javascript" language="Javascript">
     $(document).ready(function() {
         var url = "<%= ViewData["key"].ToString() %>";
         window.open(url, "DescriptiveWindowName",
              "resizable=yes,scrollbars=yes,status=yes");
     });        
</script>

来自mozilla developer page

How can I tell when my window was blocked by a popup blocker? With the built-in popup blockers of Mozilla/Firefox and Internet Explorer 6 SP2, you have to check the return value of window.open(): it will be null if the window wasn't allowed to open. However, for most other popup blockers, there is no reliable way.

希望这对您有所帮助。

关于javascript - 如何在回发窗口中显示 ViewData 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316867/

相关文章:

javascript - 当页面滚动到该部分时触发一个js动画

javascript - 将记录更新到当前json数组中

javascript - 我们可以将 mql 查询输出导出到 Google 文档吗

javascript - 为 promise 链定义后备捕获?

c# - 缩小 Asp.Net 应用程序的 Html

c# - 对象不是响应消息模型的原语

javascript - 如何在没有 JSX 的元素中添加自定义属性(仅使用 createElement 方法)?

JQuery 事件不适用于 ASP.NET MVC 部分 View

c# - 如何为此 ActionLink 创建正确的路由值?

jquery - mvc ajax.actionlink 与 jquery 对话框确认