asp.Netmvcは、あるタスクを実行した後に元のページに戻る方法
多くの場合、ある要素を削除した後、私たちは元のページに戻りたいと思っています.どのように実現しますか?
XControllerのindexとします.cshtml(またはaspx)には、次のものがあります.
[html] view plain copy print ?
<a><href = "/area/XController/delete?id=10"> カットアウトは、削除後にindexページに戻るために使用できます.
[html] view plain copy print ?
<a><href = "/area/XController/delete?id=10&backUrl=" + @Request.Url.ToString()> XController.csでは、元の [csharp] view plaincopy 01.<pre class="csharp" name="code">[HttpPost] 02.ActionResult Delete(int id) 03.{ 04. try 05. { 06. ... 07. return RedirectToAction(...); 08. } 09. catch 10. { 11. } 12.}</pre><br> 変更後: [csharp] view plaincopy 01.[HttpPost] 02. 03.ActionResult Delete(int id, string backUrl) 04.{ 05. try 06. { 07. ... 08. return Redirect(backUrl); 09. } 10. catch 11. { 12. } 13.} Request.Urlはすべてのアドレス情報(パラメータを含む)を含み、StringではなくUriタイプであるため、アドレス/サーバ/クエリーパラメータなど多くの追加操作が可能であり、詳細はインターネット検索可能である。「/ARea/Controller/Action/id」は試したことがありませんが、ほぼ同じです。2011-08-18補足:backUrlの中に「&」がある場合(戻る場所に複数のパラメータがある場合)、直接このように書くとエラーになります。 [html] view plaincopy 01.<a><hrefhrefhrefhref = "/area/XController/delete?id=10&backUrl=" + @(HttpUtility.UrlEncode(Request.Url.ToString()))> 为了符号化リターンコード(所有的特殊文字都做%等,中国语也同样实行).Helper: [csharp] view plaincopyprint? public static partial class Helper { public static string ReturnUrlOf(this HtmlHelper htmlHelper, HttpRequestBase request) { return HttpUtility.UrlEncode(request.Url.ToString()); } } 请把它写在上面写Html.ReturnUrlOf(Request).但是,不是最受欢迎的人,而是更受欢迎的人,也就像你和本人一样。如果把胶囊化的话,可以直接胶囊化interface. html] view plaincopy [email protected]("x", "/SFC/Categories/Delete?rootID=" + root.ID + "&id=" + Model.ID, returnRequest: Request) 所有的Encode和Request的问题在Link中进行内部处理。这是究极的方法。
XControllerのindexとします.cshtml(またはaspx)には、次のものがあります.
[html] view plain copy print ?
<a><href = "/area/XController/delete?id=10"> カットアウトは、削除後にindexページに戻るために使用できます.
[html] view plain copy print ?
<a><href = "/area/XController/delete?id=10&backUrl=" + @Request.Url.ToString()> XController.csでは、元の [csharp] view plaincopy 01.<pre class="csharp" name="code">[HttpPost] 02.ActionResult Delete(int id) 03.{ 04. try 05. { 06. ... 07. return RedirectToAction(...); 08. } 09. catch 10. { 11. } 12.}</pre><br> 変更後: [csharp] view plaincopy 01.[HttpPost] 02. 03.ActionResult Delete(int id, string backUrl) 04.{ 05. try 06. { 07. ... 08. return Redirect(backUrl); 09. } 10. catch 11. { 12. } 13.} Request.Urlはすべてのアドレス情報(パラメータを含む)を含み、StringではなくUriタイプであるため、アドレス/サーバ/クエリーパラメータなど多くの追加操作が可能であり、詳細はインターネット検索可能である。「/ARea/Controller/Action/id」は試したことがありませんが、ほぼ同じです。2011-08-18補足:backUrlの中に「&」がある場合(戻る場所に複数のパラメータがある場合)、直接このように書くとエラーになります。 [html] view plaincopy 01.<a><hrefhrefhrefhref = "/area/XController/delete?id=10&backUrl=" + @(HttpUtility.UrlEncode(Request.Url.ToString()))> 为了符号化リターンコード(所有的特殊文字都做%等,中国语也同样实行).Helper: [csharp] view plaincopyprint? public static partial class Helper { public static string ReturnUrlOf(this HtmlHelper htmlHelper, HttpRequestBase request) { return HttpUtility.UrlEncode(request.Url.ToString()); } } 请把它写在上面写Html.ReturnUrlOf(Request).但是,不是最受欢迎的人,而是更受欢迎的人,也就像你和本人一样。如果把胶囊化的话,可以直接胶囊化interface. html] view plaincopy [email protected]("x", "/SFC/Categories/Delete?rootID=" + root.ID + "&id=" + Model.ID, returnRequest: Request) 所有的Encode和Request的问题在Link中进行内部处理。这是究极的方法。