1

こんにちは、ユーザーが新しいレコードを作成できるページを表示し、同じテーブルの他の関連レコードを下に表示したいと思います.....

Hobbydetail クラスにデータを追加する必要があります: public class HobbyDetail {

public virtual HobbyMasters Hobbymaster { get; set; }
public virtual Course course { get; set; }
public virtual StudyMedium StudyMedium { get; set; }
public virtual decimal Fees { get; set; }

}

ビュー「作成」で、ユーザーが新しいレコードを作成し、その下に既存のレコードを表示できるようにしたい... ビューモデルを使用したくない... まとめて助けてください 事前に感謝します

4

1 に答える 1

0

これを実現する 1 つの方法は次のとおりです。コントローラーで、リストをレンダリングする子アクションを作成し、Html.RenderActionを使用して「作成」ビューでそのアクションをレンダリングします(これも参照してください)。以下にいくつかのコードを含めました (これはテストしていませんが、基本的な考え方は理解できるはずです)。これを達成する唯一の方法ではないことに注意してください。これを参照して、部分ビューを使用することもできます。html.RenderAction と html.Action の違いについても理解しておいてください。こちらを参照してください

    //In HobbyDetail Controller
    [HTTPGet]
    public ActionResult Create()
    {
      var model = new HobbyDetail ();
      return View(model);
    }

    [HTTPPost]
    public ActionResult Create(HobbyDetail model)
    {
      if(ModelState.isValid)
      {
         //logic to persist model
      }
      else
      {
         //logic when validation fails...
      }
    }

    [ChildActionOnly]
    public ActionResult ListAll()
    {
      List<Hobbydetail> model = //query to DB, or Data store to get Hobbydetails
      return View(model);
    }

//View for ListAll
@model List<HobbyDetail>
{
 Layout = null; //No layout here...
}

<ul>
@foreach(var h in Model)
{
 <li>@h.HobbyMasters.Name</li> //for example...
}
</ul>

//View for Create
@model HobbyDetail 
...
@{html.renderAction("ListAll");}
于 2012-08-07T18:46:11.217 に答える