2015-01-10 172 views
1

我想從網頁表單調用ActionResult方法,但我似乎無法獲得兩個項目連接。從按鈕按呼叫ActionResult方法

期望的結果是頁面刷新並過濾模型以顯示所需的結果。在serversController.cs

方法的內部代碼爲意放置時ActionResult Index

[HttpPost] 
public ActionResult activeServers() 
{ 
    // load the servers into local variable 
    var servers = from s in db.Servers 
        select s; 

    // filter out the archived servers 
    servers = servers.Where(s => s.archive.Equals(0)); 

    return View(servers.ToList()); 
} 

按鈕進行調用作品

@using (Html.BeginForm()) 
{ 
    <button name="activeServers" type="submit" value="activeServers" class="btn btn-default">Active</button> 
} 

謝謝你是進步

回答

1

嘗試指定在BeginForm的操作方法,控制器的名稱(沒有controller後綴)和HTTP方法(默認爲GET):

@using (Html.BeginForm("activeServers", "Servers", FormMethod.POST)) 
{ 
    <button name="activeServers" type="submit" value="activeServers" class="btn btn-default">Active</button> 
} 
+0

使用代碼,我送送的URL' http:// localhost:23952/serversController/activeServers'以及404錯誤。該網址應該是'http:// localhost:23952/servers/Index'。用服務器替換控制器名稱會達到該方法,但網頁顯示一個錯誤,指出它正在尋找名爲'activeServers'的視圖。 – tonyedwardspz

+0

如果你想向它發送請求,你的操作被稱爲'activeServers',那麼你應該在BeginForm中指定它。我將更新有關控制器名稱的部分 –