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 来完成。你有两个选择:

  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喜欢的 head 部分中

    @section head{ } 那么你必须_layout.cshtml@RenderSection("head", required: false)

    1. 您还可以做的是确保没有两次包含 jQuery,并且您没有一些 javascript 错误。查看浏览器中的 javascript 控制台以及“网络”选项卡,以确保正确包含所有脚本。

祝你好运!!!

于 2013-05-17T07:31:49.617 回答