使用Razor调用C#函数
我有一段简单的HTML代码,按一下按钮就可以调用C#函数,但URL看起来不好,有人能帮我理解Razor语法吗?到目前为止,我有以下几点:使用Razor调用C#函数,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一段简单的HTML代码,按一下按钮就可以调用C#函数,但URL看起来不好,有人能帮我理解Razor语法吗?到目前为止,我有以下几点: <div class="test1"> <div class="col-md-4"> <h1>Some button</h1> <input type="button" value="Create" onclick="location.href='@Url.Action("addAdress
<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>
一些按钮
这是一个控制器,它应该做些什么,控制器的名字是ADRESCONTROLLER
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 void addAddress()
{
地址a=新地址();
a、 Number=“1”;
a、 距离=100;
Dictionary queryDict=新字典();
添加(“编号”,a.编号);
添加(“距离”,a.距离);
var query=new Neo4jClient.Cypher.CypherQuery(“创建(n:address{Number:'“+a.Number+”,Distance:““+a.Distance+”})返回n”,
queryDict,CypherResultMode.Set);
List address=((IRawGraphClient)client.ExecuteGetCypherResults(query.ToList();
/*
foreach(地址中的地址a1)
{
MessageBox.Show(a1.编号);
}
*/
}
您的控制器方法是private
,请尝试更改为public
建议
如果要在单击时更改location.href
,只需将输入内容包装在链接中:
<a href='@Url.Action("addAdress", "Adress")'>
<input type="button" value="Click Me">
</a>
试试这个:您向我们展示了您的“控制器方法”,但它不是一种动作方法。看来你需要这么做。您应该返回一个ActionResult,您的方法应该是公共的,并且您应该为其配置路由。如果您不需要,那么href将需要一个url,然后使用preventDefault()和cont。在您的操作中,它还需要是“Address”
而不是“AddressController”
是的,这是我需要的解决方案,非常感谢