动作没有被调用mvc
本文关键字:调用 mvc | 更新日期: 2023-09-27 18:18:46
我正在使用mvc4开发asp.net中的应用程序。我是asp.net的新手。以下是我的全球。asax代码
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Default", action = "Index",
id = UrlParameter.Optional }
);
}
也protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
我也有一个名为Default1Controller
的控制器,它有一个名为MyAction的动作方法。在点击button
时,我希望执行此方法。但是,当调试控件不来这里,即方法不被调用。以下是我的控制器代码
public class Default1Controller : Controller
{
//
// GET: /Default1/
public ActionResult Default1()
{
return View();
}
public ActionResult MyAction()
{
return View();
}
}
下面是cshtml@ {ViewBag。Title = "Default1";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Default1</h2>
<div>
<p>Welcome to the world of MVC!!!!</p>
<div>
<input type="button" value="Click Me"
onclick="window.location.href('@Url.Action("MyAction","Default1Controller")')" />
</div>
</div>
点击按钮,这是我得到的错误
'/'应用程序服务器错误。
资源找不到。描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下网址,并确保拼写正确。
请求的URL: /Default1Controller/MyAction
谁能告诉我在哪里我错了。任何帮助都将非常感激。我还想补充一点,我使用的是VS 2010. net 4.0。
Thanks and Regards
试试下面的代码
<input type="button" value="Click Me" onclick="window.location.href('@Url.Action("MyAction","Default1")')" />
当使用Url.Action()
时,您不需要包括'Controller'作为控制器名称的一部分,这适用于您将控制器名称作为字符串传递的任何地方:
另外,window.location.href不是一个函数,所以应该使用=.
设置。这应该加载到正确的动作:
<input type="button" value="Click Me" onclick="window.location.href = '@Url.Action("MyAction","Default1")'" />
window.location。Href是一个属性而不是一个方法,所以你应该这样修改代码:
onclick="window.location.href = '@Url.Content("~/Default1/MyAction")';"