- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在/Home/Index 中显示了一个名为 Search.cshtml 的局部 View 。在此文件中,我有一个 HTML 表单,用于搜索并返回/Views/Accounts/Index 和搜索结果。我想在搜索 View 中的模式弹出 div 中显示这些结果。
当我在下面的代码中单击“搜索”(sumbit 输入)时,我得到一个空模式。
说到 MVC,我还是个新手。我尝试了在 Stack Overflow 上找到的一些不同结果,但一直无法找到解决方案。下面的代码至少给了我一个模式弹出窗口,尽管它是空白的。
我是不是漏掉了一些非常简单的东西?我已经尝试了下面模态主体中的所有内容(Html.Action、RenderAction、Partial、RenderPartial),但似乎没有任何效果。另外,我是不是找错树了?
我有几个屏幕截图和下面的代码。
/Home/Index with Search partial view
搜索.cshtml
@model CustomerRelationshipManager.Models.Search
@{ViewBag.Title = "Search";}
@using (Html.BeginForm("Index", "Accounts", new { id = "searchForm" }))
{
<div style="border: solid 1px #ccc; padding: 30px 0 30px 30px; border-radius: 5px;
width: 325px; margin: auto; display: table;">
<table>
<tr>
<td valign="top">
Search By:
</td>
<td>
@Html.DropDownList("Search_Type", "Search_Type")
</td>
</tr>
<tr>
<td valign="top"></td>
<td>
@Html.TextBox("Search_String")
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" data-toggle="modal" data-target="#myModal" value="Search" />
</td>
</tr>
</table>
</div>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
@{Html.Action("Index","Accounts");}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
HomeController.cs
public ActionResult Search()
{
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem() { Text = "Account Number", Value = "Account_ID" });
items.Add(new SelectListItem() { Text = "Last Name", Value = "Last_Name" });
items.Add(new SelectListItem() { Text = "Phone Number", Value = "Phone_Number" });
ViewBag.Search_Type = items;
return PartialView();
}
[HttpPost]
[AllowAnonymous]
public ActionResult Search(Search search)
{
return PartialView("~/Accounts/Index");
//return RedirectToAction("Index", "Accounts");
}
AccountController.cs(我想从这个 Controller 调用 Index())
public ActionResult Index(string Search_Type, string Search_String)
{
if (Search_String == null)
{
var accounts = db.Accounts
.Include(a => a.Account_Type)
.Include(a => a.Account_Person)
.Include(a => a.Account_Address)
.Include(a => a.Account_Contact);
return PartialView(accounts.ToList());
}
else
{
if (Search_Type == "Account_ID")
{
var accounts = db.Accounts
.Include(a => a.Account_Type)
.Include(a => a.Account_Person)
.Include(a => a.Account_Address)
.Include(a => a.Account_Contact)
.Where(a => a.Account_ID.ToString() == Search_String);
return PartialView(accounts.ToList());
}
else if (Search_Type == "Last_Name")
{
var accounts = db.Accounts
.Include(a => a.Account_Type)
.Include(a => a.Account_Person)
.Where(b => b.Account_Person.Any(c => c.Person.Last_Name.StartsWith(Search_String)))
.Include(a => a.Account_Contact)
.Include(a => a.Account_Address);
return PartialView(accounts.ToList());
}
else if (Search_Type == "Phone_Number")
{
var accounts = db.Accounts
.Include(a => a.Account_Type)
.Include(a => a.Account_Person)
.Include(a => a.Account_Contact)
.Where(b => b.Account_Contact.Any(c => c.Contact.Value == Search_String && c.Contact.Contact_Type.Name.Contains("Phone")))
.Include(a => a.Account_Address);
return PartialView(accounts.ToList());
}
else
{
var accounts = db.Accounts
.Include(a => a.Account_Type)
.Include(a => a.Account_Person)
.Include(a => a.Account_Address)
.Include(a => a.Account_Contact);
return PartialView(accounts.ToList());
}
}
Account Index.cshtml(我想在模态弹出窗口中显示它)
@model IEnumerable<CustomerRelationshipManager.Models.Account>
@{
ViewBag.Title = "Home";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>Account #</th>
<th>Contact Name(s)</th>
<th>Address</th>
<th>Contact</th>
</tr>
w2
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Account_ID)
<span> </span>
</td>
<td>
@foreach (var i in item.Account_Person)
{
<span>
<b>@Html.DisplayFor(x => i.Person_Type.Name)</b>
<br />
@Html.DisplayFor(x => i.Person.First_Name)
@Html.DisplayFor(x => i.Person.Last_Name)
</span>
<br />
}
</td>
<td>
@foreach (var i in item.Account_Address)
{
<span>
<b>@Html.DisplayFor(x => i.Address_Type.Name)</b>
<br />
@Html.DisplayFor(x => i.Address.Address1)
<br />
@Html.DisplayFor(x => i.Address.Address2)
@if (i.Address.Address2 != null)
{ <br />}
@Html.DisplayFor(x => i.Address.City)
@Html.DisplayFor(x => i.Address.State)
@Html.DisplayFor(x => i.Address.Postal_Code)
<br />
@Html.DisplayFor(x => i.Address.Country)
<br />
</span>
}
</td>
<td>
@foreach (var i in item.Account_Contact)
{
<span>
<b>@Html.DisplayFor(x => i.Contact.Contact_Type.Name)</b>
<br />
@Html.DisplayFor(x => i.Contact.Value)
<br />
</span>
}
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Account_ID }) |
@Html.ActionLink("Details", "Details", new { id = item.Account_ID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Account_ID })
</td>
</tr>
}
最佳答案
使用您当前的代码,当用户单击提交按钮时,它将执行正常的表单提交,因为您的提交按钮位于 form
标记内。对于您的用例,您应该使用 javascript 劫持正常形式的 submit
事件,并对您的操作方法进行 ajax 调用,它将使用 search_type
和 search_string
参数获取过滤后的数据,返回部分 View 结果。此部分 View 结果是您要在模态对话框内显示的 HTML 标记。一旦您的 ajax 调用收到来自服务器的响应,使用此响应更新模态对话框的正文内容并触发模态对话框。
@using (Html.BeginForm("Index", "Accounts", FormMethod.Post, new { id = "searchForm" }))
{
<div>
<input type="text" name="Search_String" />
<input type="submit" id="submit" value="Search" />
</div>
}
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
现在有一些 javascript 代码,它监听搜索表单上的提交事件并停止正常行为(正常表单提交),而是执行 ajax 表单提交。
$(document).ready(function () {
$('#searchForm').submit(function (e) {
e.preventDefault();
var $form = $(this);
$.post($form.attr("action"), $form.serialize()).done(function (res) {
$mymodal = $("#myModal");
//update the modal's body with the response received
$mymodal.find("div.modal-body").html(res);
// Show the modal
$mymodal.modal("show");
});
});
});
现在您必须确保您的 Index 操作方法返回一个局部 View (这样它就不会执行任何布局代码,而只会执行该 View 代码)。
[HttpPost]
public ActionResult Index(string Search_Type, string Search_String)
{
// Your existing filtering code goes here.
return PartialView(accounts.ToList());
}
关于c# - 在模态弹出窗口中显示局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47644428/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!