C# 如何在Html.ActionLink中添加类
我试图将一个int值从一个视图传递给一个类,该类稍后将基于该int值调用另一个函数。 我调用的类名为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
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传递给该方法