C# 如何在Html.ActionLink中添加类

C# 如何在Html.ActionLink中添加类,c#,asp.net-mvc,C#,Asp.net Mvc,我试图将一个int值从一个视图传递给一个类,该类稍后将基于该int值调用另一个函数。 我调用的类名为DataFetch.cs,它有一个名为GetLogs(intx)的函数 我认为, @Html.ActionLink("Connect", "GetLogs()", "DataFetch", new {id = item.MacNum}, new { @class = "DataFetch" }) ^这给了我一个url: http://localhost:xxx/DataF

我试图将一个int值从一个视图传递给一个类,该类稍后将基于该int值调用另一个函数。 我调用的类名为
DataFetch.cs
,它有一个名为
GetLogs(intx)的函数

我认为,

@Html.ActionLink("Connect",
            "GetLogs()", "DataFetch", new {id = item.MacNum}, new { @class = "DataFetch" })
^这给了我一个url:

http://localhost:xxx/DataFetch/GetLogs()/1
这显然不是我想要的

更新:

function GetCloud()
    {
        console.log("insidefunc");
        $.ajax({
            type: "POST",
            url: '/DataFetch/GetLogs?id=' + 1,

            data: 1,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                alert("done")
            },
            failure: function (response) {
                alert("Failed: " + response.responseText);
            },
            error: function (response) {
                alert("Error: " + response.responseText);
            }
        });
    }
这也不起作用。

是:

 @Html.ActionLink("ClickMe",  // link text
                     "Index", // action name
                     "Home",  // controller 
                     new { id = 2131 }, // (optional) route values
                     new { @class = "someClass" }) // html attributes
要了解有关ajax路由和调用的更多信息,请使用以下内容:


这将为您提供足够的信息开始。

您可以通过此按钮直接转到该功能!这还将提供该功能所需的参数值

" @Url.Action("GetLogs","DataFetch",new { id = item.MacNum} ) "
要使用它,您必须创建一个锚定标记

<a href="@Url.Action("GetLogs","DataFetch",new { id = item.MacNum} )"> Connect</a>

如果你还想要别的东西,不要否决我的答案!请在评论中告诉我,我会这样做的

@Html.ActionLink("Click Here",  // link text
                     "GetMyLogs", // you action name
                     "Home",  // you controller name
                     new { id = 1 }, // (optional) route values
                     new { @class = "someClass" }) 
好的,我建议你做的是,点击上面的ActionLink,你应该转到控制器(你的控制器)中的某个动作(你的动作),在这个动作中,你应该像这样创建类的对象(你想访问它)

public ActionResult GetMyLogs(int id){
    DataFetch Object_DataFetch  = new DataFetch();
    ObjectMyClass.GetLogs(1);
....
....
return "";
}

希望这会有所帮助

目前的问题还不清楚,因为它不完整,需要太多的问题来澄清所问的问题。阅读并提供一个可用于重现您的问题的链接,使我们能够更好地理解所问的问题。@Nkosi是一个HtmlActionLink,它调用了一个类,该类中有一个带有int参数的函数,这怎么不清楚?人们错误地回答您的问题这一事实表明问题是多么不清楚。请参阅我的原始评论。在问题澄清并提供适当信息之前,无法提供太多帮助。他希望通过ActionLink调用一个不是控制器和操作的类和方法。这是不可能的,因为这不是Razor ActionLink的意图。他会给你一个ajax的类调用。再次:这是无效的!!!您不能通过action link或ajax实现这一点!你还需要学习更多关于mvc路由和webapi的知识,这不是我要问的。我在这里已经看到了这一点:这正是您所问的:“int值。我调用的类叫做DataFetch.cs,它有一个名为GetLogs的函数。”这个类是控制器。方法就是行动。不能在@Html.ActionLink中调用不是控制器的类和不是操作的方法。您必须使用ajax。查看方法定义。这是将值从视图传递到模型或从视图传递到操作方法的语法。您没有在方法中指定它,而是在url中指定-您发出get请求。在提出这样的问题之前,请阅读更多关于路由的信息。这将给我以下信息:但我不打算转到Home controller或其索引方法。我希望它转到一个类名DataFetch,然后是它的方法GetLogs,并将值
1
传递给该方法。很好,那么您必须使用jquery.Ajax。您无法导航到非控制器类和非操作方法thourgh razor.@Html.ActionLink是锚定标记!这就是url.action和html.ActionLink之间的区别!行为是一样的!但它将调用DataFetch类中的函数GetLogs,并提供一个int值!你到底想要什么就像Html.ActionLink!但您不必创建锚定标记,因为ActionLink可以做到这一点,它是专门为它设计的!他的代码很好,他不了解路由是如何工作的。也就是说,这根本不是代码问题!你能在你想去的地方写个网址吗?或者我所理解的是!您只是在操作链接中使用“()”来代替操作值,这是不正确的@SyedMunisAli我希望它转到一个类名DataFetch,然后它的方法GetLogs,并将值1传递给该方法