MVCプログラムのデバッグ中に問題が発生し、「UserActivity」というデータベースにアクセスしたいのですが。ブラウザでは、「localhostページが機能していません
localhostが何度もリダイレクトしました。」
ただし、特定のエラーの場所は表示されません。
ここに私のUserActivtyController、GET/UserActivity/Indexコードがあります:
public class UserActivityController : BaseController
{
//GET /UserActivity/Index
public ActionResult Index(string returnUrl, int page = 1, string sort = "Id", string sortDir = "ASC", string filter = null)
{
String query = @"
SELECT Id
,CreatedBy
,CreatedOn
,ModifiedBy
,ModifiedOn
,ContactId
,EntityName
,EntityId
,ActivityType
,ActivityStatus
,DueDate
,ActualEndDate
,MasqueradeOn
,MasqueradeBy
FROM UserActivity
-- ORDER BY CreatedOn DESC
-- OFFSET (@PageNumber -1) * 30 ROWS
-- FETCH NEXT 30 ROWS ONLY
";
//string countQuery = @""
List<UserActivityModels> userActivity = null;
using (IDbConnection db = new MySqlConnection(ConfigurationManager.ConnectionStrings["CRMPORTALSQLCONN"].ConnectionString))
{
userActivity = (List<UserActivityModels>)db.Query<UserActivityModels>(query, new
{
@PageNumber = page,
});
/*ViewData["TotalCount"] = (int)db.ExecuteScalar(countQuery, new
{
@PageNumber = page,
@Id = string.IsNullOrEmpty(filter) ? null : filter
});
*/
ViewData["PageSize"] = 30;
ViewData["Filter"] = filter;
}
if (userActivity != null)
{
return RedirectToAction(returnUrl);
}
return View(userActivity);
}
}
この問題について何か知っている人がいれば本当に感謝します。ありがとう
if (userActivity != null)
{
return RedirectToAction(returnUrl);
}
ReturnUrlが同じアクション(「UserActivity/Index」)を指す場合、無限リダイレクトループが作成されます。リクエストを別のアクションにリダイレクトする場合は、正しい名前を渡すようにしてください。
ループバック状況があります。これは、無限のwhileループに似ています。修正するには、コードリダイレクトの実装を変更して、アクションメソッドにリダイレクトします。以下の実装をどのように変更したかに注目してください。これにより、「localhostが何度もリダイレクトしました」という問題が修正されます。状況に適したパラメーターなどの受け渡しをサポートするように改善できます。また、追加のパラメーターをサポートする RedirectToAction をご覧ください。アクションメソッドにパラメーターを渡す場合、このリンクが役立ちます。
public class UserActivityController : BaseController
{
//GET /UserActivity/Index
public ActionResult Index(int page = 1, string sort = "Id", string sortDir = "ASC", string filter = null)
{
// Your other implementation here. I have removed it for brevity.
if (userActivity != null)
{
return RedirectToAction("Index");
}
return View(userActivity);
}
public ActionResult Index()
{
return View();
}
}
redirectUrl
の値はわかりませんが、nullであると考えられます。また、あなたのuserActivity
はnull
ではないと思います。したがって、return RedirectToAction(returnUrl);
が呼び出されます。
RedirectToAction(null)
を呼び出すと、実際には同じアクションにリダイレクトされ、すべてが再び繰り返されます。
また、あなたのuserActivity
がnull
であるときにreturn View(userActivity);
が必要なのはなぜだろうと思っています。論理エラーがあると思います。