2016-02-16 29 views
1

我有一個輕微的小問題,想知道有無論如何,你可以幫助我嗎?如何在MVC中檢索URL值?

我正在使用angularJs將信息傳遞給MVC控制器。我將用戶的ID傳遞給控制器​​,以允許管理員將用戶更改爲管理員。 下面是該視圖的代碼,

<tr ng-repeat="r in students | filter : searchStudent"> 
    <td><input type="text" name="Id" value="{{r.ID}}" readonly id="AdminIdText" /></td> 
    <td>{{r.username}}</td> 
    <td>{{r.Email}}</td> 
    <td>{{r.AccountStatus}}</td> 
    <td><a href="{{r.ID}}">test</a></td> 
    <td><input type="submit" value="Make Admin" class="btn btn-warning" /></td> 
</tr> 

這裏是控制器,

public ActionResult AdminStatus(int id) 
    { 
     int Id = id; 
     //Connection to the database 
     var db = WebMatrix.Data.Database.Open("Database"); 
      db.Execute("UPDATE tblaccount SET AccountStatus= 1 WHERE ID =" + id); 


     db.Close(); 
     return View("AddAdministrator"); 
    } 
} 

我想知道是,你如何檢索已通過傳遞給控制器​​的數值?這是因爲將信息放入模型中工作不正常。

在此先感謝

+0

與服務器交互的代碼在哪裏? – Dave

+0

什麼是您的路線模板? – CodeNotFound

+0

只需將參數添加到您正在發佈的控制器操作 –

回答

2

我認爲你需要做2件事。使<a>標籤是這個樣子:

<a href="Action/{{r.ID}}"> 

,並添加一個控制器方法是這樣的:

public ActionResult Action(int id) 
{ 
    // Do something with the id 
} 

只要缺省路由映射設置在MVC項目,應該映射id參數給id參數。

+0

感謝您的答覆Frank!這一點記憶力的提升幫助我解決了這個問題。問題是發送信息的錨標籤。 – Callum

0

你也可以使用name屬性來獲取你的控制器方法的id值。

public void action(int Id) 
{ 
    // your code 
} 
1

使用MVC 'UrlHelper' 生成保持均勻控制器工作後的網址已經被搬來搬去:

@Url.Action("<ActionName>", "<ControllerName>", new { Area = "<AreaName>", parameter1 = parameter1Value, parameter2 = parameter2Value }) 

例如:

@Url.Action("AdminStatus", "Admin", new { Area = "Admin", id = r.ID}) 

將達到 「AdminStatus」在名爲「Admin」的區域的「AdminController」中發送一個名爲「id」的參數。