2015-01-10 141 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中指定它。我将更新有关控制器名称的部分 –