我正在寻找一种方法来了解调用控制器时按下的链接。我的链接位于我的视图页面中:
<li id="tabFiles"><a href="~/Files" id="test">Files</a></li>
我的文件控制器在这里:
public ActionResult Index(string submit)
{
string s = submit;
return View();
}
我试图传入一个字符串,希望它是被点击链接的id,但这只返回一个null。
答案 0 :(得分:3)
您应该将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>
将参数发送到控制器的方式取决于您配置routing的方式。
答案 1 :(得分:1)
你可以创建自定义动作过滤器并在控制器上设置它,如下所示:
...
[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);
}
}