0

コントローラーからの簡単なコードがあります

public ActionResult CreatePage() {

   return PartialView( "APage" );
}

そのページの一部APageは次のとおりです。

<table class="@className">
  <tr>
  ...
  </tr>
</table>

APagejavascriptで、別のクラス名(cssクラス名)で生成したい

$.post('CreatePage', function(data) {
  $('.result').html(data);
});

コントローラー関数に渡す方法 (宣言する場合:)関数public ActionResult CreatePage(string cssClass) { ... }へのパラメーターPartialView?

意味

私は好きです:

public ActionResult CreatePage( string cssClass ) {

       return PartialView( "APage", cssClass );
    }

APageそして、そのcssクラスをビューに使用したいと思います。

例えば:

  1. 私が電話したら

    $.post('CreatePage', {cssClass: 'aClass' ,function(data) { $('.result').html(data); });

  2. それからそれは呼び出します

    public ActionResult CreatePage( string cssClass ) {
    
       return PartialView( "APage", cssClass ); //cssClass = 'aClass'
    }
    
  3. そして、次のようなビューを返します

    <table class="aClass"> <tr> ... </tr> </table>

ありがとうございました

4

2 に答える 2

0

@rikitikitikが言ったことを拡張する。

メソッドのオーバーロードは既に発見しました。CSS クラス文字列を含めるPartialView(viewName, model)ように current を拡張する必要があります。modelというプロパティを追加するだけCssClassで、部分ビューで使用できるようになります。

もちろん、これは、「単なる」モデルやデータベースモデル(たとえばEntity Frameworkによって処理される)ではなく、ビューモデル(およびMVVMパターン)を使用していることを前提としています。

public class APartialModel
{
    public string Name { get; set; }
    // ... other properties
    public string CssClass { get; set; }
}
public ActionResult CreatePage( string cssClass ) {

   // Initialize the entire view model for the partial view here
   // This usually means you need to pass in an id and use it to
   // make a database lookup.
   // If it's "too much work", it probably means you
   // need to fix a structural problem.
   APartialModel model = new APartialModel
       {
           Name = "Somehow I already know this value",
           CssClass = cssClass
       };

   return PartialView( "APage", model );
}
@model APartialModel

<table class="@Model.CssClass">
  <tr>
  ... for example @Model.Name
  </tr>
</table>
于 2012-07-08T14:26:04.953 に答える
0

私があなたを正しく理解したかどうかはわかりませんが、あなたの例はすでに正しい軌道に乗っていると思います.

部分ビューで、これを一番上に追加します。

@model string

次に、部分ビューで、テーブル タグの定義を次のように変更します。

<table class="@Model"> <tr> ... </tr> </table>
于 2012-07-06T06:53:06.460 に答える