使用Razor调用C#函数

使用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

我有一段简单的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", "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”
是的,这是我需要的解决方案,非常感谢