Html.Action 不会呈现用 [HttpPost] 注释的操作方法

2024-04-19

我的控制器上有以下方法:

  [HttpPost]
  public ActionResult UnplannedCourses(int studentId)
  {
     var model = CreateUnplannedCourseModel(studentId);
     return View("UnplannedCourses", model);
  }

在我看来,我尝试:

  <div class="unplannedcourses">
  @Html.Action("UnplannedCourses", "Student", new { studentId = Model.StudentId })
  </div>

但这会出现错误:在控制器“Digidos.MVCUI.Controllers.StudentController”上找不到公共操作方法“UnplannedCourses”。

如果我离开[HttpPost]出来,然后它就可以工作了,但是我稍后再次从 javascript 使用该操作,所以我只想使用 POST 。

有什么想法吗?


我认为我最好的选择是基于 MVC 源的新属性:

public class ChildishAttribute : ActionMethodSelectorAttribute
{
   private static readonly AcceptVerbsAttribute _innerAttribute = new AcceptVerbsAttribute(HttpVerbs.Post);
   public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
   {
      var isPost = _innerAttribute.IsValidForRequest(controllerContext, methodInfo);
      var isChildAction = controllerContext.IsChildAction;
      var isAjax = controllerContext.RequestContext.HttpContext.Request.IsAjaxRequest();

      return isChildAction || (isAjax && isPost);
  }
}

[Childish]
public ActionResult UnplannedCourses(int studentId)
{
   var model = CreateUnplannedCourseModel(studentId);
   return View("UnplannedCourses", model);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Html.Action 不会呈现用 [HttpPost] 注释的操作方法 的相关文章

  • 注销按钮在 mvc 应用程序中不起作用

    我有一个具有不同用户帐户和密码的 MVC 应用程序 登录功能工作正常 但当我单击注销按钮时 出现 404 错误 应用程序中的服务器错误 无法找到该资源 描述 HTTP 404 您正在查找的资源 或其依赖项之一 可能已被删除 名称已更改或暂时
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • SimpleMembershipProvider 在 WebSecurity.SignOut 之后不会销毁会话

    我正在使用所有默认成员代码运行 ASP NET MVC 4 AccountController的LogOff的代码是 HttpPost ValidateAntiForgeryToken public ActionResult LogOff
  • 目标中的 clr.dll 版本与构建的 mscordacwks.dll 版本不匹配

    我正在使用 NET Framework 4 0 开发 ASP NET MVC 3 应用程序 当我去调试我的应用程序时 我收到消息 无法附加到应用程序 webdev webserver 目标中的 clr dll 版本与构建 mcordacwk
  • MVC4更新部分视图

    我正在开发一个简单的 MVC 应用程序 我有主视图 部分视图和控制器 这是我的主要视图 model partitalViewTest Models Qset div class transbox style height 1 Html Pa
  • Automapper实体框架外键为空

    我正在尝试使用实体框架更新数据库 我使用自动映射器将实体映射到视图模型 并以相同的方式将其映射回来 HttpPost ValidateAntiForgeryToken public ActionResult Edit FromJson My
  • 为什么要调用base.OnActionExecuting(filterContext);?

    我只是在看我的一些旧代码 我有一个动作过滤器 OnActionExecuting 方法 最后我有 base OnActionExecuting filterContext 为什么到处搜索我都看到这个很多次了 我还看到 在我的旧授权标签中 我
  • 如何在 asp.net mvc 中跨应用程序进行表单身份验证

    如何在 asp net mvc 中跨应用程序进行表单身份验证 假设有两个网站 www xyz com 和 www abc com 我必须对两个站点使用相同的用户凭据 如果我将一个应用程序重定向到另一个应用程序 那么它不会要求登录 如果应用程
  • 使用 AJAX 和 Jquery 自动完成功能填充表单数据

    我想使用自动完成所选项目来填写表单数据 我的自动完成工作正常 但我无法弄清楚如何通过从自动完成文本框中检索项目来填写表单数据 这是我的代码 HttpPost public JsonResult GetAutocomplete string
  • 如何在 Razor 中设置数字编辑器的最小值、最大值和默认值

    我有一个 int 值 我想将其渲染为数字 up down 其 id 为 Quantity 因此我在 razor 中执行以下操作 div class field label Html LabelFor m gt model Quantity
  • 有没有办法在 jqgrid treeGrid url 请求中传回附加数据?

    i am 使用 jqgrid 树视图 http www trirand com jqgridwiki doku php id wiki 3atreegrid我正在传回 json 响应 效果很好 我想将一些有关请求的附加信息传递回 GUI 并
  • ASP.NET MVC 粘贴到剪贴板

    我有一个 ASP NET MVC 4 应用程序 我想复制文本 从 PDF CTRL C 并将其作为参数粘贴到控制器的方法中 我的网络网格有一个带有 ActionLink 的列 grid Column format a href Url Ac
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request
  • OWIN 可以替代 ASP.NET MVC 应用程序中的 DI 吗?

    大约一年前 在 Visual Studio 中创建时自动生成的 MVC 项目不包含任何有关 OWIN 的内容 作为再次申请并试图了解这些变化的人 我想知道 OWIN 是否可以替代我的 DI 据我了解 Startup Auth cs 中的以下
  • 当checked属性为false时,单选按钮默认被选中?

    我正在尝试生成单选按钮 有条件地检查检查的属性 如果该值存在于数据库中 则应选择它 否则检查的属性为 false 所以最初数据库中没有行 所有单选按钮的检查属性也为 false 但仍然在 UI 上选择 请参见下图 所以不知道这是默认行为还是
  • CSS、Javascript 和图像的长度为零

    我正在尝试将 ASP NET MVC 1 0 Visual Studio 2008 项目移植到 ASP NET MVC RC 2 Visual Studio 2010 该项目 并且一直 在 IIS 7 上运行 动态内容 由控制器提供的所有内
  • 如何告诉 razor 不要 html 转义

    我在一个项目中使用 asp net mvc 3 和 razor 在某些情况下 我需要从控制器序列化数组 将其放入视图数据中并将其分配给 js 对象 但是当我使用它输出时 ViewData some array 结果是 html 转义所以我得
  • .NET Core MVC 中的可选模型属性绑定

    我已经创建了一个AccountModel它具有以下属性 public class AccountModel Required EmailAddress public string Email get set Required StringL
  • 构建:找不到“节点”的类型定义文件

    VS 2015 社区版 在家 npm 3 10 Angular 2 我试图在 ASP Net MVC 5 应用程序中获取 Angular2 设置 我开始使用的模板使用旧版本的 Angular 因此我更新了包引用 当我构建时 列表中的第一个错
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in

随机推荐