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