2012-04-18 35 views
1

私はMVCを初めて使用しています。 MVC 3を使用しています。MVC部分ビューがメインビューを隠す

PersonMaster Controllerには以下の2つのアクションがあります。次のように

public ActionResult TopTenPersons() 
    { 
     Thread.Sleep(2000); 
     var persons = DatabaseHelper.Instance.Database.Query<Person_Master>("select top(10) from person_master").ToList(); 
     return View("_PersonGrid", persons); 
    } 

    public ActionResult Index() 
    { 
     var persons = DatabaseHelper.Instance.Database.Query<Person_Master>("select * from person_master").ToList(); 

     return View("_PersonGrid",persons); 
     //return View(); 
    } 

そして、index.cshtml図で..あるインデックスビューに上に呼び出さ以下の通りである

@model System.Collections.Generic.ICollection<MyPracticeApp1.Models.Person_Master> 
@section scripts{ 
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"> </script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
} 

<h2>Persons</h2> 

<p> 

@Ajax.ActionLink("Click to top 10 Persons","TopTenPersons", new AjaxOptions{ 
UpdateTargetId="tbl_person", 
InsertionMode=InsertionMode.Replace, 
HttpMethod="GET" 
}) 
</p> 
<div id="tbl_person"> 
@Html.Action("Index","PersonMaster"); 
</div> 

..and部分図_PersonGrid.cshtml ...

@model System.Collections.Generic.ICollection<MyPracticeApp1.Models.Person_Master> 
@{ 
var persongrid = new WebGrid(Model); 
} 
@persongrid.GetHtml() 

....しかし、問題はそれが部分的なビューを直接示すことです。インデックスビューのAjax Actionlinkをレンダリングしません。では、間違いはどこですか?あなたはこのコードを追加するとき

答えて

1

変更TopTenPersons _PersonGrid.cshtml

にヌル=レイアウトを追加Partial View、ないView

public ActionResult Index() 
{ 
    var persons = DatabaseHelper.Instance.Database.Query<Person_Master>("select * from person_master").ToList(); 

    return PartialView("_PersonGrid",persons); 
} 
+0

グリッドを表示de plainページ...トップリンクアプリケーション名とすべてで表示されません。 –

+0

これをErayの言ったことと組み合わせて、レイアウトビューの上部にLayout = nullを設定しようとしましたか? – mattytommo

+0

はい..コメントを見る...また、上のグリッドに表示したいアクションリンクが表示されません。 –

1

を返すためにはそれがない

@{ 
    Layout = null; 
} 

のように思えます全景表示。

+0

これは、プレーンページの人のグリッドを表示します。デフォルトのレイアウトはありません。アクションリンクは表示されません。 –

+0

okですが、layout = nullを設定すると、部分表示がレンダリングされます。あなたが完全なページのようにレンダリングされないならば。私はあなたのような問題を経験していました。わたしにはできる。 –

+0

問題が解決しました。部分的なビューを返す代わりに、インデックスアクションでインデックスビューを返しました。 –

関連する問題