#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");
}