2016-05-18 21 views
1

最後に、Ajax.BeginFormを使用して、BeginFormブロックで選択した選択肢を送信するときに表を更新する方法を学びました。私は部分的なビューをロードするようにコントローラを伝える方法を、毎回意図したとおりにその機能がにダイヤルされるので、私は、部分図の負荷を「提出」をクリックしビューを最初にロードするときに部分ビューの読み込みを行うにはどうすればよいですか?

。私は見つけることができませんでした何

ですビューが最初にロードされたときに、インデックスアクションのデフォルト値を使用します。 (パーシャルビューはインデックスアクションをサポートしています)。

これはコントローラから行うことができますか、それともjQueryである必要がありますか?

より多くのコンテキストを提供するために、次のコードは現在動作しています。つまり、部分ビューはフォームが送信されたときにのみ読み込まれますが、最初のViewの負荷には表示されません。

ビュー:

@model ViewModelTest.ViewModels.StudentBehaviorDetailBySemesterViewModel 

// ... code ... 

@using (Ajax.BeginForm(actionName: "PartialTable", 
    controllerName: "StudentBehaviorDetailBySemester", 
    ajaxOptions: new AjaxOptions { UpdateTargetId = "TableData" })) 
{ 
    <div> 
     <p>Campus: @Html.DropDownListFor(c => c.SelectedCampus, Model.CampusList)</p> 
     <p>FY: @Html.DropDownListFor(c => c.SelectedFy, Model.FyList)</p> 
     <input type="submit" value="submit" /> 
    </div> 
} 

<div id="TableData"> 
    @{Html.Action("PartialTable", "StudentBehaviorDetailBySemester" 
      , new { vm = Model });} 
</div> 


@section scripts 
{ 
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> 
} 

コントローラ - インデックスと部分図あなたが使用する必要が

[HttpGet] 
public ActionResult Index(string SelectedCampus="MRA", string SelectedFy="FY16") 
{ 
    StudentBehaviorDetailBySemesterViewModel vm 
     = new StudentBehaviorDetailBySemesterViewModel();  
    vm.SelectedCampus = SelectedCampus; 
    vm.SelectedFy = SelectedFy; 

    vm.CampusList = new SelectList(Repositories.SelectLists.CampusList()); 
    vm.FyList = new SelectList(Repositories.SelectLists.FiscalYearList()); 
    return View(vm); 
} 


public ActionResult PartialTable(StudentBehaviorDetailBySemesterViewModel vm) 
{ 
    using (TestAccountContext db = new TestAccountContext()) 
    { 
     var query = db.StudentBehaviorDetailBySemesters 
      .Where(m => m.Campus == vm.SelectedCampus) 
      .Where(m => m.Fy == vm.SelectedFy).ToList(); 
     vm.BehaviorDetail = query; 
    } 

    return PartialView("PartialTable", vm); 
} 
+0

コードのあなたの 'Html.Action()'ラインは、部分的なビューをレンダリングします。あなたはどんな問題を抱えていますか? –

+0

_first_ページが読み込まれたときに、デフォルト値を使って部分ビューを読み込みます。私は部分的なビューを表示するには "submit"を押す必要があります。 –

+1

'@ {Html.RenderAction(" PartialTable "、" StudentBehaviorDetailBySemester "、new {vm = Model});}' – SeM

答えて

1

代わりの

@{Html.Action("PartialTable", "StudentBehaviorDetailBySemester", new { vm = Model });} 

@{Html.RenderAction("PartialTable", "StudentBehaviorDetailBySemester", new { vm = Model });} 
2

あなたがあなたの部分図の構文を更新持つ部分のビューをレンダリングしたい場合は...

@{Html.RenderAction("PartialTable", "ControllerName", new { vm = Model });} 
関連する問題