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

本文关键字:之间 参数 控制器 net mvc 视图 asp | 更新日期: 2023-09-27 18:28:45

我是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);
    }

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

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

您的控制器操作应该接受一个参数。在Asp.NetMVC中,这是一个正常的模型:

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">
}