在我的控制器中,我有两个叫做"朋友"的动作.执行的那个取决于它是否是"获取"而不是"帖子".
所以我的代码片段看起来像这样:
// Get:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Friends()
{
// do some stuff
return View();
}
// Post:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Friends()
{
// do some stuff
return View();
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会编译,因为我有两个具有相同签名的方法(Friends).我该怎么做呢?我是否只需要创建一个操作但区分其中的"获取"和"发布"?如果是这样,我该怎么做?
我在MVC视图中有一个下拉列表.在选择更改下拉列表时,我想在控制器中调用特定的操作方法.
我在观点上所做的是:
<%=Html.DropDownList("ddl", ViewData["AvailableList"] as SelectList,
new { onchange = "this.form.action='MyMethod';this.form.submit();" })%>
Run Code Online (Sandbox Code Playgroud)
一切都在编译.但是当我更改下拉选项时会抛出运行时异常,如
"Microsift JScript运行时错误:对象不支持属性或方法"
如何重定向到列表选择更改事件的特定操作?
如何将参数传递给此操作方法?
我有一组使用 .Net Standard 2.0 开发的类库。这些类库之一实现了IAuthorizationFilter位于Microsoft.AspNetCore.Mvc.Filters命名空间中的接口。
public class AuthorizationFilter : IAuthorizationFilter
{
public AuthorizationFilter() {}
public void OnAuthorization(AuthorizationFilterContext context)
{/*Code cropped for the case of simplicity*/}
}
Run Code Online (Sandbox Code Playgroud)
另一个类库的主要职责是注册依赖注入配置。
public static class ServiceCollectionExtensions
{
public static IServiceCollection MyCustomConfigure(this IServiceCollection services)
{
//...Code cropped for the case of simplicity
services.AddMvc(config => { config.Filters.Add(typeof(AuthorizationFilter)); });
return services;
}
}
Run Code Online (Sandbox Code Playgroud)
除了这些 .Net Standard 类库之外,我还有一个使用ASP.Net MVC(.Net Framework 4.7)开发的 Web 应用程序项目
我在这里有两个主要问题:
FilterAttribute类来ASP.Net MVC's过滤列表,它会抛出一个异常说:给定的过滤器实例必须实现以下一个或多个过滤器接口:System.Web.Mvc.IAuthorizationFilter、System.Web.Mvc.IActionFilter、System.Web.Mvc.IResultFilter、System.Web.Mvc.IExceptionFilter、System.Web .Mvc.Filters.IAuthenticationFilter。
我在我的 …