2017-12-27 545 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

是的,這是我需要的解決方案,非常感謝 –