我是网络语言的新手。 我在visual studio 2010上开始了一个.NET项目,它是MVC 4和razor结构。
问题是我在views文件夹中有一个文件夹,里面有一个视图,但是当我尝试访问视图时出现了这个错误:
The view 'searchWeb' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/searchWeb.aspx
~/Views/Home/searchWeb.ascx
~/Views/Shared/searchWeb.aspx
~/Views/Shared/searchWeb.ascx
~/Views/Home/searchWeb.cshtml
~/Views/Home/searchWeb.vbhtml
~/Views/Shared/searchWeb.cshtml
~/Views/Shared/searchWeb.vbhtml
我猜他没有在正确的文件夹中搜索...但是如何更改? 我看了一些主题,显然我必须创建一个新的viewEngine并从旧的继承? 是否可以在不制作新视图引擎的情况下修复它?或者你能告诉我如何制作新的视图引擎吗?谢谢!
编辑:
这是我的homeController.cs:
namespace Searcher.Controllers
{
public class HomeController : Controller
{
public ActionResult homeWeb()
{
ViewBag.Message = "Searching for sites over the web.";
return View();
}
public ActionResult homeImages()
{
ViewBag.Message = "Searching for images over the web.";
return View();
}
public ActionResult homeVideos()
{
ViewBag.Message = "Searching for videos over the web.";
return View();
}
[HttpPost]
public ActionResult searchWeb()
{
// do something with the search value
return View();
}
}
}
这是我的homeWeb,它正在调用searchWeb:
@{
ViewBag.Title = "Search Web";
}
@section featured {
<section class="featured">
<div class="content-wrapper">
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
<h2>@ViewBag.Message</h2>
</hgroup>
</div>
</section>
}
@using (Html.BeginForm("searchWeb", "Home", FormMethod.Post, new { id = "searchForm" }))
{
<div class="main-block">
<p>
<div>
<input size="200px" type="text" name="searchValue" />
</div>
<div>
<input type="submit" value="Submit" />
</div>
</p>
</div>
}
答案 0 :(得分:0)
不推荐更改视图搜索位置。相信我:)。特别是对于MVC中的新手。 你不需要改变它,这必须在盒子里工作。 因此,确保视图位置正确。我可以看到这个视图你需要创建动作 在Home Controller中如
public ActionResult searchWeb()
{
return View();
}
或者您试图将该视图称为部分视图?
答案 1 :(得分:0)
那么你的searchWeb.cshtml文件在哪里? 您的控制器告诉视图引擎在Home控制器中查找search.Web.cshtml文件,该文件通常转换为 〜/ View / Home / searchWeb.cshtml(您在问题中提到的默认搜索位置之一)。