2011-03-15 66 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