繁体   English   中英

ASP.NET MVC将参数从视图传递到控制器

[英]ASP.NET MVC pass a parameter from a view to a controller

我正在寻找一种方法来知道调用控制器时按下了什么链接。 我的链接在我的查看页面中:

<li id="tabFiles"><a href="~/Files" id="test">Files</a></li>

我的文件控制器在这里:

    public ActionResult Index(string submit)
    {
        string s = submit;

            return View();

    }

我尝试传递一个字符串,希望它是单击的链接的ID,但这仅返回null。

您应该将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);
    }
}

更多详细信息,你可以找到这里在微软网站或这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM