Возврат представления из другой проблемы контроллера

#c# #asp.net #asp.net-mvc #model-view-controller

Вопрос:

Я работаю над проектом, у меня есть 2 контроллера: AccountController, Table_1Controller. На контроллере учетной записи я вернул представление с путем к представлению другого контроллера. Когда я запускаю представление AccountController, оно возвращает Table_1Controller, но URL-адрес https://localhost:44365/Account/Verify. Я не понимаю, почему он не может вернуться https://localhost:44365/Table_1/Create. Кто-нибудь может помочь мне это исправить?

AccountController.cs :

 namespace LoginApp.Controllers
{
    public class AccountController : Controller
    {
        private const string OtherController = "~/Views/Table_1/Create.cshtml";
        SqlConnection con = new SqlConnection();
        SqlCommand com = new SqlCommand();
        SqlDataReader dr;
        // GET: Account
        [HttpGet]
        public ActionResult Login()
        {

            return View();
        }
        void connectionString()
        {
            con.ConnectionString = "private;";
        }
        [HttpPost]
        public ActionResult Verify(Account acc)
        {
            connectionString();
            con.Open();
            com.Connection = con;
            string v = @"SELECT * FROM Table_Login WHERE Username = '"   acc.Name   "' and Password ='"   acc.Password   "'";
            com.CommandText = v;
            dr = com.ExecuteReader();
            if(dr.Read())
            {
                con.Close();
                return View(OtherController);
            }
            else
            {
                con.Close();
                return View("Error");
            }
    }
 

таблица_1контроллер:

Комментарии:

1. Я полагаю, что вы просто возвращаете указанное представление в /Account/Verify URL-адресе. Возможно, вы захотите вместо этого вернуть перенаправление .

Ответ №1:

вы можете использовать относительный маршрут :

 return View("../Table_1/Create");
 

внутренний код

 if(dr.Read())
{
    con.Close();
    return View("../Table_1/Create");
}
 

или использовать

 return RedirectToAction("Create","Table_1");
 

внутренний код

 if(dr.Read())
{
    con.Close();
    return RedirectToAction("Create","Table_1");
}