动作没有被调用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

动作没有被调用mvc

试试下面的代码

<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")';"