尝试 post 到控制器时收到 404 错误
receiving 404 error when trying to post to controller
我正在尝试调用传递 2 个参数的控制器方法,但从未触发控制器操作并返回 404 错误。
在查看了其他类似问题后,我尝试重新格式化 actionlink 并尝试使用 @html.action,确保它是一个 HttpGet 而不是一个 HttpPost 并且显然使操作方法实际上存在于控制器。
操作结果:
@Html.ActionLink(
linkText: item.FileName,
actionName: "GetStatement",
controllerName: "Statements",
routeValues: new { id = item.Id, entityCode =
item.EntityCode },
htmlAttributes: null)
控制器方法
public class StatementsController : Controller
{
[HttpGet]
public ActionResult GetStatement(int id, int entityCode)
{
//go to repository and get statement
}
}
我也不确定对应的URL格式是否正确:
Statments/GetStatement/1234?entityCode=111
请检查这个你需要更改一些小代码。
In cshtml page
@Html.ActionLink(
linkText: item.FileName,
actionName: "GetStatement",
controllerName: "Statements",
routeValues: new { itemid = item.Id, entityCode =
item.EntityCode },
htmlAttributes: null)
Controller code
public class StatementsController : Controller
{
[HttpGet]
public ActionResult GetStatement(int itemid, int entityCode)
{
//go to repository and get statement
}
}
注意:当你在controller action中传递"Id"然后在下面的例子中自动路由转换
public ActionResult HandleException(int id)
{
// id mentioned in **RouteConfig** file that's way URL automatic mapped
}
See the RouteConfig file
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
我正在尝试调用传递 2 个参数的控制器方法,但从未触发控制器操作并返回 404 错误。
在查看了其他类似问题后,我尝试重新格式化 actionlink 并尝试使用 @html.action,确保它是一个 HttpGet 而不是一个 HttpPost 并且显然使操作方法实际上存在于控制器。
操作结果:
@Html.ActionLink(
linkText: item.FileName,
actionName: "GetStatement",
controllerName: "Statements",
routeValues: new { id = item.Id, entityCode =
item.EntityCode },
htmlAttributes: null)
控制器方法
public class StatementsController : Controller
{
[HttpGet]
public ActionResult GetStatement(int id, int entityCode)
{
//go to repository and get statement
}
}
我也不确定对应的URL格式是否正确: Statments/GetStatement/1234?entityCode=111
请检查这个你需要更改一些小代码。
In cshtml page
@Html.ActionLink(
linkText: item.FileName,
actionName: "GetStatement",
controllerName: "Statements",
routeValues: new { itemid = item.Id, entityCode =
item.EntityCode },
htmlAttributes: null)
Controller code
public class StatementsController : Controller
{
[HttpGet]
public ActionResult GetStatement(int itemid, int entityCode)
{
//go to repository and get statement
}
}
注意:当你在controller action中传递"Id"然后在下面的例子中自动路由转换
public ActionResult HandleException(int id)
{
// id mentioned in **RouteConfig** file that's way URL automatic mapped
}
See the RouteConfig file
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}