ASP.NET MVC将参数从视图传递到控制器
本文关键字:控制器 视图 NET MVC 参数 ASP | 更新日期: 2023-09-27 17:50:14
我正在寻找一种方法来知道当控制器被调用时按下了什么链接。我的链接在我的视图页:
<li id="tabFiles"><a href="~/Files" id="test">Files</a></li>
和我的文件控制器在这里:
public ActionResult Index(string submit)
{
string s = submit;
return View();
}
我试图传递一个字符串,希望它将是点击链接的id,但这只返回一个空。
您应该将id作为查询字符串传递:
<li id="tabFiles"><a href="~/Files/?id=test">Files</a></li>
public ActionResult Index(string id)
{
string s = id;
return View();
}
或者你可以用这种形式传递它:
<li id="tabFiles"><a href="~/Files/test">Files</a></li>
向控制器发送参数的方式取决于您如何配置路由。
您可以创建自定义动作过滤器,并在控制器上设置如下:
...
[CustomActionFilter]
public class FilesController : Controller
{
...
}
在这个自定义过滤器中,你可以得到这样的动作名称:
public class
CustomActionFilter : ActionFilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
// TODO: Add your acction filter's tasks here
// Log Action Filter Call
MusicStoreEntities storeDB = new MusicStoreEntities();
ActionLog log = new ActionLog()
{
Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
Action = filterContext.ActionDescriptor.ActionName + " (Logged By: Custom
Action Filter)",
IP = filterContext.HttpContext.Request.UserHostAddress,
DateTime = filterContext.HttpContext.Timestamp
};
storeDB.ActionLogs.Add(log);
storeDB.SaveChanges();
this.OnActionExecuting(filterContext);
}
}
你可以在微软网站上找到更多的细节或关于这个问题