使用Razor调用C#函数
问题描述:
我有一段简单的HTML代码,它应该按下按钮来调用C#函数,但它看起来像URL是不好的,任何人都可以使用Razor语法来帮助我吗?到目前为止,我有以下几点:使用Razor调用C#函数
<div class="test1">
<div class="col-md-4">
<h1>Some button</h1>
<input type="button" value="Create" onclick="location.href='@Url.Action("addAdress", "AdressController")'" />
<p></p>
</div>
这里是应该做的事控制器,该控制器的名字是AdressController
private void addAdress()
{
Adress a = new Adress();
a.Number = "1";
a.Distance = 100;
Dictionary<string, object> queryDict = new Dictionary<string, object>();
queryDict.Add("Number", a.Number);
queryDict.Add("Distance", a.Distance);
var query = new Neo4jClient.Cypher.CypherQuery("CREATE (n:Adress {Number:'" + a.Number + "', Distance:'" + a.Distance + "'}) return n",
queryDict, CypherResultMode.Set);
List<Adress> adrese = ((IRawGraphClient)client).ExecuteGetCypherResults<Adress>(query).ToList();
/*
foreach (Adress a1 in adrese)
{
MessageBox.Show(a1.Number);
}
*/
}
答
你的控制器的方法是private
,尝试改为public
消化不良
如果你要改变location.href
上点击,只是包装输入一个链接里面:
<a href='@Url.Action("addAdress", "Adress")'>
<input type="button" value="Click Me">
</a>
+1
它也需要''地址''不'''AddressController'' –
+0
是的,这是我需要的解决方案,非常感谢 –
试试这个: – Ryu
您向我们展示了您的”控制器方法“,但它不是一个操作方法。似乎你需要[查看MVC的基础知识](https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/)。你应该返回一个ActionResult,你的方法应该是公开的,你应该为它配置路由。 – mason
如果你不想使用preventDefault()和cont,那么href将会得到一个url。与您的操作 –