【问题标题】:How to display view obtained from C# in JS?如何在 JS 中显示从 C# 获得的视图?
【发布时间】:2019-08-20 08:40:23
【问题描述】:

我需要显示一个从 ASP.NET 控制器方法获得的视图。如何做到这一点?

[HttpGet]
  public ActionResult B(string Email, string Password)
  {
  //some code
  return View();
  }

js


function A() {             
   $.get("/Home/B", {
   "Email": document.getElementById("Email").value,
   "Password": document.getElementById("Pass").value
   },

    function (data) {
       //  ......
    });

function (data) 中写什么来接收和显示返回的View()

【问题讨论】:

  • 返回的视图是html。您可以将 html 附加到 div 或任何可以显示的地方

标签: c# jquery asp.net-mvc


【解决方案1】:

从 ajax 回调返回的“数据”是视图的 HTML。你可以给它展示一个 html 元素。

function A() {             
                    $.get("/Home/B", {
                        "Email": document.getElementById("Email").value,
                        "Password": document.getElementById("Pass").value   },
                     function (data) {
                         $('#div-where-you-want-to-show-view').html(data);

                     });

没有 Jquery:

document.getElementById("div-where-you-want-to-show-view").innerHTML = data;

【讨论】:

    【解决方案2】:

    如果你使用的是 jQuery,这就是你要找的东西

    function (resultingHtml) {
       $(".the-div-you-are-displaying-the-results-in").html(resultingHtml);
    }
    

    【讨论】:

    • 如果没有div,我可以这样做吗?例如,重定向到返回的页面?
    • @Dex2345 我想这就是你要找的东西:stackoverflow.com/questions/20011282/…
    • @Dex2345 看来您是在使用 jQuery 异步显示一些东西,称为ajax 请求。但是将用户重定向到页面不需要使用ajax。您可以直接从服务器重定向用户。 (HTTP 302 响应)。请清楚你在做什么:显示不刷新的东西(ajax),或者将用户重定向到一个新页面。
    • 是的,不要重定向到那个页面。您不需要 AJAX 来执行此操作,只需将表单发布到正确的 url。
    【解决方案3】:

    尽管对于给定场景,更好的方法可能是使用局部视图。从您的操作方法返回一个部分视图并调用/加载该操作方法,如下所示:

    $("#divToDisplay").load("/home/B", 
               { 
                  Email: document.getElementById("Email").value
                 , Password: document.getElementById("Pass").value 
                }
              );
    

    在您使用的这种方法中,您只需使用html() 方法从视图中呈现返回的 html 内容。

    function A() {             
       $.get("/Home/B", {
       "Email": document.getElementById("Email").value,
       "Password": document.getElementById("Pass").value
       },
    
        function (data) {
            $("#divToDisplay").html(data);
        });
    

    divToDisplay 是您要放置视图 html 的 html 内容中任何 div 的 id

    【讨论】:

      猜你喜欢
      • 2017-11-08
      • 1970-01-01
      • 2018-03-04
      • 2023-03-20
      • 2017-01-12
      • 1970-01-01
      • 2012-09-24
      • 2013-05-08
      • 1970-01-01
      相关资源
      最近更新 更多