gpt4 book ai didi

c# - response.redirect 后返回

转载 作者:太空狗 更新时间:2023-10-29 22:57:41 25 4
gpt4 key购买 nike

我有方法 public void categoriesForm_DeleteItem(int categoryID) 公共(public)部分类 Categories_View1:System.Web.UI.Page。它仿照教程中的方法 RemoveItem http://www.asp.net/web-forms/overview/getting-started/getting-started-with-aspnet-45-web-forms/shopping-cart .

我的方法包含以下代码:

public void categoriesForm_DeleteItem(int categoryID)
{
/* some code ommited */
if (c != null)
{
db.Categories.Remove(c);
db.SaveChanges();
Response.RedirectToRoute("CategoriesList");
//should I add return; here?
}
else
{
ModelState.AddModelError("NotFoundError", "Category not found.");
return;
}
/* code ommited */
}

我应该在 Response.RedirectToRoute("CategoriesList"); 之后添加 return; 吗? ?

还有一个问题...我在教程中看到方法RemoveItem 返回int,返回代码背后的意图是什么?该返回码在什么地方有用?

最佳答案

Should I add return; after Response.RedirectToRoute("CategoriesList"); ?

这取决于您是否希望代码返回。

首先,请注意 Response.Redirect()Response.RedirectToRoute() 之间的主要区别。默认情况下,前一个(较旧的)方法会中止线程,该线程会抛出一个 ThreadAbortException。因此无论如何都不会执行该语句之后的代码。然而,后一种(较新的)方法不会。这意味着它之后的任何代码被期望执行。

鉴于此,请看一下示例中的最后一点...

/* code ommited */

如果您不从该方法返回,该代码将执行。如果您不希望这种情况发生,则需要从方法返回或构造代码,以便在调用 Response.RedirectToRoute() 后不存在其他代码路径。

关于c# - response.redirect 后返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36623384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com