2017-12-27 323 views
0

我有一段简单的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); 
     } 
     */ 
    } 
+0

试试这个: Ryu

+4

您向我们展示了您的”控制器方法“,但它不是一个操作方法。似乎你需要[查看MVC的基础知识](https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/)。你应该返回一个ActionResult,你的方法应该是公开的,你应该为它配置路由。 – mason

+0

如果你不想使用preventDefault()和cont,那么href将会得到一个url。与您的操作 –

回答

1

你的控制器的方法是private,尝试改为public

消化不良

如果你要改变location.href上点击,只是包装输入一个链接里面:

<a href='@Url.Action("addAdress", "Adress")'> 
    <input type="button" value="Click Me"> 
</a> 
+1

它也需要''地址''不'''AddressController'' –

+0

是的,这是我需要的解决方案,非常感谢 –