0

我正在使用 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。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

请求的网址:/Default1Controller/MyAction


谁能告诉我哪里出错了。任何帮助将不胜感激。另外我想补充一点,我正在使用 VS 2010..Net 4.0。

谢谢并恭祝安康

4

3 回答 3

1

试试下面的代码

<input type="button" value="Click Me" onclick="window.location.href('@Url.Action("MyAction","Default1")')" />
于 2013-06-18T07:56:48.627 回答
1

使用 时,您不需要将 'Controller' 作为控制器名称的一部分Url.Action(),这适用于您将控制器名称作为字符串传递的任何地方:

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

这应该加载到正确的操作:

<input type="button" value="Click Me" onclick="window.location.href = '@Url.Action("MyAction","Default1")'" />
于 2013-06-18T07:57:18.070 回答
0

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

onclick="window.location.href = '@Url.Content("~/Default1/MyAction")';"
于 2013-06-18T08:02:23.953 回答