如何在与Asp.Net Mvc中的一个页面相关的不同操作中更改URL?

时间:2014-04-06 09:47:55

标签: asp.net-mvc

例如,有一个包含2个操作的成员控制器:

1-Show:显示每个成员前面有标签的成员列表,从数据库中删除相关成员。

2-Delete:从数据库中删除成员

标记“a”删除:

<a href="/Member/Delete/Id">Delete<a>

删除时单击URL地址更改为/ Member / Delete / Id。我不想更改网址并保留/会员/显示,虽然我想要在删除会员时显示成功消息。 这样做的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

您绝对应该使用HTTP GET请求删除或进行其他破坏性更改。将删除操作设置为HTTP POST,并使用一个表单提交给具有删除ID的控制器。如果您需要适合现有设计,可以轻松地将提交按钮设置为看起来像链接。

就您的要求而言,我实际上会使用AJAX提交删除表单,并在成功回调中返回您的消息并从页面中删除该项目。这根本不需要重新加载页面,并且可以直接用jQuery实现。

或者,如果您对JavaScript没有信心或者不想使用Ajax请求,则可以从POST请求返回Redirect to Action结果,该结果将返回列表,并将已删除的项目ID添加到行动的路线值字典。

为此,它应该与您的操作上定义的可为空的int参数匹配。然后可以在绑定时在视图模型上设置,或者您可以简单地使用ViewBag。然后在视图中你可以做这样的事情 -

@if (Model.ItemDeleted.HasValue) {
   <p class="success-message">Successfully deleted item @Model.ItemDeleted.Value</p>
}