asp.net mvc在视图和控制器之间传递参数

时间:2016-01-03 18:11:21

标签: c# asp.net-mvc view controller

我是asp.net的新手,我想创建简单的数据库应用程序。 我需要在视图和控制器之间传递参数以从数据库中检索数据。 我只需要这个标题是"东西"的数据。我创建了包含搜索设置的简单左侧菜单。 这是我的观点页面。

@model IEnumerable<TwojaBiblioteka.Models.Ksiazka>
@{
ViewBag.Title = "Home Page";
}
@Styles.Render("~/Content/css")
<div class="jumbotron">
<script src="~/Scripts/jquery-2.1.4.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<div class="container">
    <div class="row">

        <div class="col-md-2">
            <h2>Szukaj</h2>

            <div class="textboxes">
                <input type="text" name="Tytul" class="form-control" id="Tytul" placeholder="Tytuł..." />
                <input type="text" name="txtAutor" class="form-control" id="txtAutor" placeholder="Autor..." />
                <input type="text" name="txtISBN" class="form-control" id="txtISBN" placeholder="ISBN..." />
            </div>              
            <center>
           @Ajax.ActionLink("Szukaj", "SzukajKsiazki", new AjaxOptions()
      {
          HttpMethod="GET",
          UpdateTargetId= "divKsiazki",
          InsertionMode= InsertionMode.Replace
      })
            </center>
        </div>
        <div id="divKsiazki"class="col-md-10 ">  
        </div>
</div>
</div>
</div>

这是来自数据库的显示数据视图:

@model IEnumerable<TwojaBiblioteka.Models.Ksiazka>
<table class="table" style="border:1px solid black;">
<tr>
    <th>
        @Html.DisplayNameFor(model => model.Tytul)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.Autor)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.ISBN)
    </th>       
</tr>
@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Tytul)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Autor)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.ISBN)
    </td>      
</tr>
}
</table>

这是我的控制者:

public PartialViewResult SzukajKsiazki()
    {
    string tytul="something";

        var ksiazkilist = db.Ksiazka.Where(x => x.Tytul == tytul).ToList();
        return PartialView("_ListaKsiazek",wypozyczone);
    }

那么我如何将数据从文本框传递到控制器以仅显示包含文本框文本的记录?

1 个答案:

答案 0 :(得分:0)

您的控制器操作应接受参数。在Asp.Net MVC中,这是典型的模型:

public PartialViewResult SzukajKsiazki(IEnumerable<TwojaBiblioteka.Models.Ksiazka> model)

您的视图应该包含表单中包含的模型中的所有编辑器元素,并且您需要一个提交按钮:

@using (Html.BeginForm("SzukajKsiazki", "ControllerName", FormMethod.Post)
{
<table class="table" style="border:1px solid black;">
<tr>
<th>
    @Html.DisplayNameFor(model => model.Tytul)
</th>
<th>
    @Html.DisplayNameFor(model => model.Autor)
</th>
<th>
    @Html.DisplayNameFor(model => model.ISBN)
</th>       
</tr>
@foreach (var item in Model) {
<tr>
<td>
    @Html.DisplayFor(modelItem => item.Tytul)
</td>
<td>
    @Html.DisplayFor(modelItem => item.Autor)
</td>
<td>
    @Html.DisplayFor(modelItem => item.ISBN)
</td>      
</tr>
}
</table>
<input type="submit" value="submit">
}