动作没有被调用mvc

时间:2013-06-18 07:50:24

标签: c# asp.net .net asp.net-mvc controller

我正在使用mvc4在asp.net中开发一个应用程序。我是asp.net的新手。以下是我的global.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.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

请求的网址:/Default1Controller/MyAction


任何人都可以告诉我在哪里 我错了。任何帮助将受到高度赞赏。另外我想补充说我正在使用VS 2010.Net 4.0。

谢谢和问候

3 个答案:

答案 0 :(得分:1)

尝试以下代码

<input type="button" value="Click Me" onclick="window.location.href('@Url.Action("MyAction","Default1")')" />

答案 1 :(得分:1)

使用Url.Action()时,您不需要将“Controller”作为控制器名称的一部分包含在内,这适用于您将控制器名称作为字符串传递的任何位置:

此外,window.location.href不是函数,因此应使用=。

进行设置

这应加载到正确的操作:

<input type="button" value="Click Me" onclick="window.location.href = '@Url.Action("MyAction","Default1")'" />

答案 2 :(得分:0)

window.location.href是一个属性而不是方法,所以你应该改变这样的代码:

onclick="window.location.href = '@Url.Content("~/Default1/MyAction")';"