2011-03-15 40 views
0

我想從SQL Server數據庫檢索記錄,但如下我不能搜索記錄我的索引形式的代碼是:ASP MVC如何從數據庫檢索記錄

<%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並確保 拼寫正確。 請求的網址:/首頁/提交**

請幫助,並給我示例代碼感謝。

回答

0

您的標記正在創建一個表單,該表單將發佈到「候選人」控制器上的「提交」操作。

我不知道你的控制器被調用,但你的動作被稱爲「CandidateSearch」。

將您的標記更改爲:(假設您的頁面是由回發到的同一個控制器呈現的)。

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

OR

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

我是變化的標記,但我並沒有從表中獲取數據,但有些例外是發生傳遞到字典的類型爲「將System.Data.Linq模型項目。 DataQuery'1 [DomainModel.Entities.Candidate]',但是這個字典需要一個'DomainModel.Entities.Candidate'類型的模型項。 – sandy 2011-03-15 11:48:21

+0

plz任何人都可以幫我,給我一個示例代碼,我可以如何搜索記錄。 – sandy 2011-03-18 07:52:06

+0

感謝大衛它正在工作。 – sandy 2011-03-21 06:28:24

相關問題