代码之家  ›  专栏  ›  技术社区  ›  Aximili

.NET网站:从jQuery获取.ascx的输出

  •  1
  • Aximili  · 技术社区  · 14 年前

    例如,我有Book.ascx文件,我可以在控制器中有这个

    public ActionResult Book(int id)
    {
      BookModel model = new BookModel() { bookId = id };
      return PartialView("Book", model);
    }
    

    返回Book.ascx的输出

    我希望能够与AJAX一起使用它,例如。
    <div id="book123"> 输出为/Book.ascx?id=123

    有可能吗?

    我在找这样的东西

    $.get('Book.ascx?id=123', function(data) {
      $("#book123").html(data);
    });
    

    但这行不通,因为你不能直接调用Book.ascx。。。

    提前谢谢

    2 回复  |  直到 14 年前
        1
  •  1
  •   Sonic Soul    14 年前

    好吧,这是可行的,但不漂亮:)

    您可以实例化控件,而不是通过QueryString传递密钥,而是通过exposed属性:

    var ctrl = new BookModel();
    ctrl.BookID = "book123";
    

    而不是用类似于

    private string renderControl(Control ctrl)
    {
      System.Text.StringBuilder sb = new System.Text.StringBuilder();
      System.IO.StringWriter tw = new System.IO.StringWriter(sb);
      System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
      ctrl.RenderControl(hw);
      return sb.ToString();
    }
    

        2
  •  0
  •   hjortureh    14 年前

    无法在asp.net窗体页中使用部分视图。但是您可以使用用户控件(.ascx)的传统方式。

    这可能在asp.net文档中得到了最好的描述: http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/userctrl/default.aspx