我没有有一个名为Test
的视图。但是,{strong> Home
控制器中有一个方法,名为Test
。
一切正常,Test
方法被执行并重定向到代码中给出的Index
视图。但是,在浏览器中,网址为../Home/Test
而不是../Home/Index
。我没有名为Test
的视图,为什么会显示这个?我不希望此URL显示在浏览器中。我该如何解决这个问题?
查看:
@using (Html.BeginForm("Test", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" />
..// Other code
}
C#
public ActionResult Test(HttpPostedFileBase f)
{
var m = new HomeModel();
..// Other code goes here
return View("../Home/Index", m); // Will be returning the Index View
}
答案 0 :(得分:0)
如果您使用的是MVC的标准设置,则不是浏览器中显示的View,而是The Method。默认情况下,该方法返回视图(但这是可选的)。
所以你需要做的是将Test Method重命名为Index并将[HttpPost]放在它上面。
[HttpPost]
public ActionResult Index(HttpPostedFileBase f)
{
var m = new HomeModel();
..// Other code goes here
return View(m);
}
答案 1 :(得分:0)
在网址
中“../主页/测试”
测试就是行动,因此工作正常。
如果您不希望显示此URL,请将操作“测试”重命名为“索引”并更新其参考
并使用(可选)
return View("Index", m)
答案 2 :(得分:0)
return View("../Home/Index", m);
这不会将您重定向到Index
;它只会显示您的索引视图。如果您希望浏览器自动将您的网址从/Test
更改为/Index
,则必须执行以下操作:
return RedirectToAction("Index");
答案 3 :(得分:-1)
试试这个:
public ActionResult Test(HttpPostedFileBase f)
{
var m = new HomeModel();
..// Other code goes here
return RedirectToAction("Index");
}