Asp.net 用另一个视图替换局部视图

Asp.net 用另一个视图替换局部视图,asp.net,ajax,asp.net-mvc,partial-views,Asp.net,Ajax,Asp.net Mvc,Partial Views,我在尝试用另一个视图替换部分视图时遇到了一些问题, 我做了研究,并试图通过一些关于这类问题的话题来实现我的目标。 到目前为止,我对asp.net还不太熟悉,但我知道我需要使用Ajax.ActionLink 到目前为止,我所做的就是这样 我有一个项目列表,由于部分视图而显示,现在我想做的是,当我点击一个部分视图链接“编辑”时,我想用另一个部分视图替换这个特定视图,目的是编辑一些字段,然后我想点击保存并返回到另一个部分视图“详细信息”非常简单,不是吗?但我到目前为止还没能挺过去 这里有一些代码,我只

我在尝试用另一个视图替换部分视图时遇到了一些问题, 我做了研究,并试图通过一些关于这类问题的话题来实现我的目标。 到目前为止,我对asp.net还不太熟悉,但我知道我需要使用Ajax.ActionLink

到目前为止,我所做的就是这样

我有一个项目列表,由于部分视图而显示,现在我想做的是,当我点击一个部分视图链接“编辑”时,我想用另一个部分视图替换这个特定视图,目的是编辑一些字段,然后我想点击保存并返回到另一个部分视图“详细信息”非常简单,不是吗?但我到目前为止还没能挺过去

这里有一些代码,我只是把与_ItemSummary部分视图替换为_ItemEdit部分视图相关的代码放在这里

MyController.cs

public ActionResult Index()
{
var list = (some code to get my list of items)
return View(list);
}

public ActionResult ItemEdit(string itemId)
{
var item = (some code to get my item thanks to its id)
return PartialView("_ItemEdit",item);
}
Index.cshtml

@model IEnumerable<ItemModel>
<div class="row main-elem main-with-menu">
    <div class="box">
        @foreach (var item in Model)
        {
            @Html.Partial("_ItemSummary",item)
        }
    </div>
</div>
<div id="itemsummary" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
                <p id="room-name" class="room-name">
                    <span class="roomName">@Model.Id</span>
                </p>
                <h5>@Model.Reference</h5>
                <h5>@Model.Localisation</h5>

                @Ajax.ActionLink( "Edit", "ItemEdit", "Settings", new { itemId = Model.Id }, new AjaxOptions() { UpdateTargetId = "itemsummary", HttpMethod = "GET", InsertionMode = InsertionMode.Replace}  )

            </div>
        </div>
    </div>
</div>
<div id="itemedit" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
//Stuff to be added
            </div>
        </div>
    </div>
</div>
@model IEnumerable
@foreach(模型中的var项目)
{
@Html.Partial(“\u ItemSummary”,item)
}
\u ItemSummary.cshtml

@model IEnumerable<ItemModel>
<div class="row main-elem main-with-menu">
    <div class="box">
        @foreach (var item in Model)
        {
            @Html.Partial("_ItemSummary",item)
        }
    </div>
</div>
<div id="itemsummary" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
                <p id="room-name" class="room-name">
                    <span class="roomName">@Model.Id</span>
                </p>
                <h5>@Model.Reference</h5>
                <h5>@Model.Localisation</h5>

                @Ajax.ActionLink( "Edit", "ItemEdit", "Settings", new { itemId = Model.Id }, new AjaxOptions() { UpdateTargetId = "itemsummary", HttpMethod = "GET", InsertionMode = InsertionMode.Replace}  )

            </div>
        </div>
    </div>
</div>
<div id="itemedit" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
//Stuff to be added
            </div>
        </div>
    </div>
</div>

@Model.Id

@模型参考 @模型.本地化 @ActionLink(“编辑”、“项目编辑”、“设置”,新的{itemId=Model.Id},新的AjaxOptions(){UpdateTargetId=“itemsummary”,HttpMethod=“GET”,InsertionMode=InsertionMode.Replace})
\u ItemEdit.cshtml

@model IEnumerable<ItemModel>
<div class="row main-elem main-with-menu">
    <div class="box">
        @foreach (var item in Model)
        {
            @Html.Partial("_ItemSummary",item)
        }
    </div>
</div>
<div id="itemsummary" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
                <p id="room-name" class="room-name">
                    <span class="roomName">@Model.Id</span>
                </p>
                <h5>@Model.Reference</h5>
                <h5>@Model.Localisation</h5>

                @Ajax.ActionLink( "Edit", "ItemEdit", "Settings", new { itemId = Model.Id }, new AjaxOptions() { UpdateTargetId = "itemsummary", HttpMethod = "GET", InsertionMode = InsertionMode.Replace}  )

            </div>
        </div>
    </div>
</div>
<div id="itemedit" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
//Stuff to be added
            </div>
        </div>
    </div>
</div>

//要添加的内容
它当前所做的是将我重定向到一个页面,但我想留在页面上,只替换我单击的div,但在控制器中,使用正确的itemId调用ItemEdit函数。我读到了这类问题,并尝试了一些答案,但我无法达到我的目的


提前感谢您解释我做错了什么以及应该做什么

您可以通过添加一些脚本自己做:

<div id="itemsummary" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
                <p id="room-name" class="room-name">
                    <span class="roomName">@Model.Id</span>
                </p>
                <h5>@Model.Reference</h5>
                <h5>@Model.Localisation</h5>
                <a class="editLink" href="@Url.Action("ItemEdit", "Settings", new { itemId = Model.Id  })" >Edit </a>                  
            </div>
        </div>
    </div>
</div>

通过添加一些脚本,您可以自己完成:

<div id="itemsummary" class="thumbnail">
    <div class="col-xs-12">
        <div class="caption">
            <div class="col-xs-12" id="infosObj">
                <p id="room-name" class="room-name">
                    <span class="roomName">@Model.Id</span>
                </p>
                <h5>@Model.Reference</h5>
                <h5>@Model.Localisation</h5>
                <a class="editLink" href="@Url.Action("ItemEdit", "Settings", new { itemId = Model.Id  })" >Edit </a>                  
            </div>
        </div>
    </div>
</div>

如果你重定向,这意味着你没有在视图或布局中包含
jquery.unobtrusive ajax.js
,我对web开发很感兴趣,这是否意味着我需要在三个视图中引用这个脚本?然后只需添加此脚本,它就会让我在单击后停留在索引页上?您需要在任何使用
Ajax.ActionLink()
Ajax.BeginForm()
的页面中使用该脚本,我正在尝试,希望它能起作用,感谢tipi,在添加了在这个git上找到的脚本后,我仍然被重定向到它。如果你重定向,这意味着你没有在你的视图或布局中包含
jquery.unobtrusive ajax.js
,我在web开发方面很差劲,这是否意味着我需要在三个视图中引用这个脚本?然后,只要添加这个脚本,它就会让我在点击后停留在我的索引页面上?在任何使用
Ajax.ActionLink()
Ajax.BeginForm()
的页面上都需要这个脚本,我正在尝试一下,希望它能工作,感谢在添加了这个git上找到的脚本后我仍然被重定向到的tipi