0

これはコントローラーです

 public class ProductController : Controller
{
    //
    // GET: /Product/

    public ActionResult Index(int id = 0)
    {
        return View(DALCategory.GetCategoryList());
    }

    public PartialViewResult productPartial(int id)
    {
        if (id > 0)
        {
            return PartialView("_productPartial", DALProduct.GetProductListByCateDetail(id));
        }
        else
        {
            return PartialView("_productPartial", DALProduct.GetProductList());
        }


    }

これはインデックス ビューのコードです

      @model IEnumerable<Model.Category>
        <h2>Products</h2>


        <table>
            <tr>
                <th>
                    @Html.DisplayNameFor(model => model.name)
                </th>
            </tr>

            @foreach (var item in Model)
            {
                <tr>
                    <td>
                        @Html.ActionLink(@item.name, "productPartial", new { id = item.id })
                    </td>
                </tr>
            }
        </table>
@Html.Partial(productPartial)

そして、これは部分ビューのコードです。

@model IEnumerable<Model.Product>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.SKU)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.product_name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.price)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.SKU)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.product_name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.price)
        </td>
        <td>
@*            @Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
            @Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })*@
        </td>
    </tr>
}

</table>

だから私がやりたいことは...アイテムがクリックされると、新しいオブジェクトでパーシャルをレンダリングします。はい、部分ビューは同じページにのみレンダリングされます。私は非常に多くのことをしてきました。それほど難しい問題ではないと思いますが、これを行うために何をする必要があるのか​​ よくわかりません...

4

2 に答える 2

2

ページの一部を更新したいので、それを達成するには ajax を使用する必要があります。そこには 2 つのオプションがあります。

  1. ユーザー @Ajax.ActionLink (ビュー内に部分ビューをロードするにはどうすればよいですか)

  2. コントローラー メソッドを呼び出して部分ビューを返す独自の jquery ajax リクエストを作成できます。

于 2013-05-17T00:14:32.213 に答える
0

それは私にも起こりました。ページを部分的に同じページにロードしたかったのですが、他のリンクに転送され続けました。次の点に注意してください。

  1. あなたが持っているjquery-1.6.2.jsこのファイルのバージョンを含めました。

  2. また、作成したjqueryファイルを含めてください。上記のものが最初に含まれていることを確認してください。

  3. これらのファイルをセクションの一部に含めた場合は、使用しているレイアウト ファイルまたは他のレイアウト ファイル.cshtmlでレンダリングするようにしてください。_Layout.cshtmlたとえば、index.cshtmlこのようなファイルのヘッドセクションにファイルを含めました

    @section head{ } 次に、このセクションを次のようにレンダリングする必要があり_layout.cshtmlます@RenderSection("head", required: false)

    1. またできることは、jQuery が 2 回含まれていないことと、javascript エラーがないことを確認することです。ブラウザの JavaScript コンソールと [ネットワーク] タブを見て、すべてのスクリプトが正しく含まれていることを確認します。

幸運を!!!

于 2013-05-17T07:31:49.617 に答える