1

MVC .NET アプリケーションでは、PartialView を使用して ASCX ファイルの出力を簡単に印刷できます。

たとえば、Book.ascx ファイルがあり、これをコントローラーに含めることができます

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

Book.ascx の出力を返します

通常の .NET Web サイトでこれを行う方法はありますか?

たとえば、AJAXで使用できるようにしたい。
[更新] ボタンをクリックすると、の内容<div id="book123">が /Book.ascx?id=123 の出力に置き換えられます

それは可能ですか?

私はこのようなものを探しています

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

しかし、Book.ascx を直接呼び出すことができないため、それは機能しません...

前もって感謝します

4

2 に答える 2

1

まあ、それは実行可能ですが、きれいではありません:)

コントロールをインスタンス化し、QueryString を介してキーを渡す代わりに、公開されたプロパティを介してそれを行うことができます。

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

次のようなものでHTMLをレンダリングするよりも

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();
}

サービスを介してそのhtmlを戻し、divなどに挿入するよりも..

于 2010-06-23T00:52:02.270 に答える
0

asp.net フォーム ページで部分ビューを使用することはできません。ただし、ユーザー コントロール (.ascx) を使用すると、従来の方法で行うことができます。

これはおそらくasp.netのドキュメントで最もよく説明されています:http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/userctrl/default.aspx

于 2010-06-23T00:33:35.617 に答える