2
ほかにも数多くの質問があっても、この作業を行うことはできません。ここに私のコントローラは、(エンティティフレームワークを使用して作成)Route MVC ASP.Netはうまく動作しません
namespace mypage.Controllers
{
[RoutePrefix("Booking")]
public class BookingsController : BaseController
{
private mypageContext db = new mypageContext();
// GET: Bookings
public ActionResult Index()
{
var model = db.Bookings.ToList();
//model.Find()
return View(model);
}
// etc.
私のGlobal.asax
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Database.SetInitializer<mypageContext>(new DropCreateDatabaseIfModelChanges<mypageContext>());
}
}
そしてrouteconfig.cs
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
http://localhost:xxxxx/Booking しかし、これを開くときに、私はいつも404を得ることです作品http://localhost:xxxxx/Bookings
isr他の場所を調べる?
PS:BaseController
はちょうど空の
public abstract class BaseController : Controller
{
}
で編集
私はしかし定期プレフィックスを追加する代わりにRoutePrefix場合、それはすべてのいずれか
[Route("Booking/New")]
public ActionResult Edit(int? id)
では動作しません。
これは実際にはうまくいきました。すべてのアクションに '[Route(" ThisAction ")]'を追加する必要が本当にありますか? – rst
コントローラを '[RoutePrefix(" Booking ")、Route(" {action} ")]'でマークすることができ、すべてのアクションでコントローラを必要としません。多くの例がここにあります[ASP.NET MVC 5の属性ルーティング](https://blogs.msdn.microsoft.com/webdev/2013/10/17/attribute-routing-in-asp-net-mvc-5/) – Jasen
ここに '[Route(" test ")]'アクションを追加すると、 'HTTP Error 400.0 - Bad Request'というメッセージが表示されます。 – rst