asp mvc我怎样才能从数据库中搜索记录

时间:2011-03-15 11:24:10

标签: asp.net-mvc

我想从sql server数据库中搜索记录,但我无法搜索记录,我的索引表单代码如下:

<%using (Html.BeginForm("Submit","Candidates",FormMethod.Post)){ %>
  Enter keyword to search
  <div id="searchBox">
   <input type= "text" name="FirstName" 
                id="FirstName" maxlength="70" onfocus="this.value=''" value=""/><br />

   <input id="search" type="submit" value="Search" />
  </div>
<% } %>

mysql存储库代码

public class SqlCandidatesRepository:ICandidatesRepository
 {
   private Table<Candidate> candidatesTable;
   public SqlCandidatesRepository(string connectionString)
   {
     candidatesTable = (new DataContext(connectionString)).GetTable<Candidate>(); 
   }
   public IQueryable<Candidate> SearchCandidate(string key)
   {
     var candidate = (from p in 
                         candidatesTable 
                           where p.FirstName == key
                            select p);

     return candidate;
     }  
 }

控制器代码

  public class CandidatesController : Controller
     {
    //
    // GET: /Products/
    private ICandidatesRepository candidatesRepository;
    public CandidatesController(ICandidatesRepository candidatesRepository)
    {


        this.candidatesRepository = candidatesRepository;
    }

public ActionResult CandidateSearch(string name)
 {
  var candidate = candidatesRepository.SearchCandidate(name);
  return View(candidate.ToList());
 }
       }    

异常追踪:

  

描述:HTTP 404.资源   你正在寻找(或其中一个   依赖)可能已被删除,   它的名字改了,或者是   暂时不可用。请   查看以下网址并确保   拼写正确。   请求的URL:/ Home / Submit **

请帮助并给我示例代码谢谢。

1 个答案:

答案 0 :(得分:0)

您的标记正在创建一个表单,该表单将发布到“候选人”控制器上的“提交”操作。

我不知道您的控制器被调用了什么,但您的操作被称为“CandidateSearch”。

将您的标记更改为:(假设您的页面由其回发的同一个控制器呈现)。

 <% using (Html.BeginForm("CandidateSearch")){ %>

OR

  <% using (Html.BeginForm("CandidateSearch","TheControllerName")){ %>