- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个名为 CreateBoard 的 Controller ,它插入 session 并显示在数据库中创建的所有 session 。我的发布版本没有问题并且没问题,所以我没有在问题中显示它。
[HttpGet]
public ActionResult CreateBoard(IEnumerable<BMModel> search)
{
if (search != null)
{
ViewData["Boards"] = search;
return View();
}
var db = new BoardMeetingEntities();
var AllBoards = from p in db.tBoardMeetings
select new BMModel
{
Absent = p.Absent,
Attendent = p.Attendent,
BMDate = p.BMDate,
BMNo = p.BMNo.ToString(),
EndTime = p.EndTime,
StartTime = p.StartTime,
MPlace = p.MPlace,
IsFinal = p.IsFinal
};
ViewData["Boards"] = AllBoards;
return View();
}
public ActionResult SearchBoard(FormCollection form)
{
string bmno = form["BMNo"].ToString();
string bmdate = form["BMDate"].ToString();
string mplace = form["MPlace"].ToString();
if (bmno == string.Empty && bmdate == string.Empty && mplace == string.Empty)
{
return RedirectToAction("CreateBoard");
}
else
{
var db = new BoardMeetingEntities();
var query = from p in db.tBoardMeetings
where p.BMNo.ToString() == bmno || p.BMDate.ToString() == bmdate || p.MPlace == mplace
select new BMModel
{
Absent = p.Absent,
Attendent = p.Attendent,
BMDate = p.BMDate,
BMNo = p.BMNo.ToString(),
EndTime = p.EndTime,
StartTime = p.StartTime,
MPlace = p.MPlace,
IsFinal = p.IsFinal
};
IEnumerable<BMModel> q = query.ToList();
return RedirectToAction("CreateBoard", new { search = q });
}
}
这是我的观点:
@model MetronicTemplate.Models.BMModel
@{
ViewBag.Title = "BoardMeeting";
IEnumerable<MetronicTemplate.Models.BMModel> list = ViewData["Boards"] as IEnumerable<MetronicTemplate.Models.BMModel>;
}
<div class="tab-content">
<div class="tab-pane active" id="tab_1">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption"><i class="icon-reorder"></i> sessions</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
<a href="#portlet-config" data-toggle="modal" class="config"></a>
<a href="javascript:;" class="reload"></a>
<a href="javascript:;" class="remove"></a>
</div>
</div>
<div class="portlet-body form">
@using (Html.BeginForm())
{
if (ViewData["Success"] != null)
{
<div class="alert alert-success fade in alert-dismissable" role="alert">
<p href="#" class="alert-link" data-dissmiss="alert">@ViewData["Success"].ToString()
</div>
}
@Html.ValidationSummary(true, "", new { @class = "alert-danger fade in alert-dismissable", role = "alert" })
<h3 class="form-section">
insert session
</h3>
<div class="row-fluid">
<div class="span3 ">
<div class="control-group">
<label class="control-label">session number</label>
<div class="controls">
@Html.TextBoxFor(m => m.BMNo, "", new { @class = "m-wrap span12 medium", id ="BMNo" })
</div>
<div class="controls text-error">
@Html.ValidationMessageFor(m => m.BMNo, "", new { @class = "m-wrap span12" })
</div>
</div>
</div>
<div class="span6 ">
<div class="control-group">
<label class="control-label">date </label>
<div class="controls">
@Html.TextBoxFor(m => m.BMDate, "", new { @class = "m-wrap span12 medium", id ="BMDate" })
</div>
<div class="controls text-error">
@Html.ValidationMessageFor(m => m.BMDate, "", new { @class = "m-wrap span12" })
</div>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span3 ">
<div class="control-group">
<label class="control-label">start session</label>
<div class="controls">
@Html.TextBoxFor(m => m.StartTime, "", new { @class = "m-wrap span12 medium", id ="BMStart" })
</div>
<div class="controls text-error">
@Html.ValidationMessageFor(m => m.StartTime, "", new { @class = "m-wrap span12" })
</div>
</div>
</div>
<div class="span3 ">
<div class="control-group">
<label class="control-label">end of session </label>
<div class="controls">
@Html.TextBoxFor(m => m.EndTime, "", new { @class = "m-wrap span12 medium", id ="BMEnd" })
</div>
<div class="controls text-error">
@Html.ValidationMessageFor(m => m.EndTime, "", new { @class = "m-wrap span12" })
</div>
</div>
</div>
<div class="span3 ">
<div class="control-group">
<label class="control-label">place of session </label>
<div class="controls">
@Html.TextBoxFor(m => m.MPlace, "", new { @class = "m-wrap span12", id ="BMPlace" })
</div>
<div class="controls text-error">
@Html.ValidationMessageFor(m => m.MPlace, "", new { @class = "m-wrap span12" })
</div>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6 ">
<div class="control-group">
<label class="control-label">attendent</label>
<div class="controls">
@Html.TextBoxFor(m => m.Attendent, "", new { @class = "m-wrap span12", id ="BMPresent" })
</div>
<div class="controls text-error">
@Html.ValidationMessageFor(m => m.Attendent, "", new { @class = "m-wrap span12" })
</div>
</div>
</div>
<div class="span6 ">
<div class="control-group">
<label class="control-label">absent </label>
<div class="controls">
@Html.TextBoxFor(m => m.Absent, "", new { @class = "m-wrap span12", id ="BMAbsent" })
</div>
<div class="controls text-error">
@Html.ValidationMessageFor(m => m.Absent, "", new { @class = "m-wrap span12" })
</div>
</div>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn blue"><i class="icon-ok"></i> insert</button>
<button type="button" class="btn" onclick="cancel()">cancel</button>
<button type="submit" class="btn" formaction="@Url.Action("SearchBoard","BoardMeeting")">search</button>
</div>
if (list != null)
{
<h3>the list</h3>
<table class="table table-striped table-hover table-bordered dataTable" id="sample_editable_1" aria-describedby="sample_editable_1_info" style="width:1000px;">
<thead>
<tr role="row">
<th class="sorting_disabled" role="columnheader" rowspan="1" colspan="1" style="width:5px;" aria-label="Username">sessoin no</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 15px;" aria-label="Full Name: activate to sort column ascending">session date</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 15px;" aria-label="Points: activate to sort column ascending"> session start</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 50px;" aria-label="Delete: activate to sort column ascending">end of session</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 75px;" aria-label="Edit: activate to sort column ascending">place of session</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 114px;" aria-label="Delete: activate to sort column ascending">attendent</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 114px;" aria-label="Delete: activate to sort column ascending">absent</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 114px;" aria-label="Delete: activate to sort column ascending">status</th>
<th class="sorting" role="columnheader" tabindex="0" aria-controls="sample_editable_1" rowspan="1" colspan="1" style="width: 50px;" aria-label="Delete: activate to sort column ascending"></th>
</tr>
</thead>
<tbody role="alert" aria-live="polite" aria-relevant="all">
@foreach (var item in list)
{
<tr class="odd">
<td class="center">@item.BMNo.ToString()</td>
<td class="center">@item.BMDate.ToString()</td>
<td class="center">@item.MPlace</td>
<td class="center">@item.StartTime</td>
<td class="center">@item.EndTime</td>
<td class="center">@item.Attendent</td>
<td class="center">@item.Absent</td>
<td class="center">
<span class="center">
<input class="checker" type="checkbox" readonly
@if (item.IsFinal) { @: checked
} />
</span>
</td>
<td class=" "><a class="center" href="@Url.Action("BMDetail", "BoardMeeting", new { id = @item.BMNo })">bmdetail</a></td>
<td class=" "><a class="center" href="@Url.Action("Agenda", "BoardMeeting", new { id = @item.BMNo })">bmorder</a></td>
<td class=" "><a class="center" href="@Url.Action("BMDetailActivity", "BoardMeeting", new { id = @item.BMNo, z = true })">session analyse</a></td>
<td class=" "><a class="center" href="@Url.Action("FinalizeBoard", "BoardMeeting", new { FID = @item.BMNo })">finalize</a></td>
<td class=" "><a class="edit" href="javascript:;">edit</a></td>
<td class=" "><a class="delete" href="javascript:;">delete</a></td>
</tr>
}
</tbody>
</table>
}
}
</div>
</div>
</div>
我的问题是当我单击搜索按钮时,它会调用搜索板操作并完美地查询数据库但是当它重定向到创建板操作时, View 在表中不显示任何内容。我跟踪代码并注意到搜索板中的查询有没问题,但是当涉及到 createboard 操作时,搜索参数没有值。我错过了什么吗?
最佳答案
您不能将对象集合传递给 GET 方法。 RedirectToAction()
方法将使用 .ToString()
您作为路由参数传递的对象的方法来生成查询字符串。在您的情况下,您的对象是 List<BMModel>
这意味着它正在通过 search = "System.Collection.Generic.List<yourAssembly.BMModel>"
不能绑定(bind)到您的参数。幸运的是,这不起作用,因为它很容易超过查询字符串限制并引发异常。
删除 POST 方法并更改 GET 方法以包含您要发布的 3 个参数。
[HttpGet]
public ActionResult CreateBoard(int BMNo, DateTime BMDate, string MPlace)
{
ViewData["Boards"] = // Generate and filter your query here based on the parameters
return View()
}
并将您的表单更改为 FormMethod.Get
@using (Html.BeginForm("CreateBoard", "yourControllerName", FormMethod.Get))
{
....
}
请注意,您当前查看的内容显示了许多控件,这些控件似乎与您的搜索查询无关,因此不清楚它们的用途。
我建议您考虑使用 ajax 将值发布到一个单独的 Controller 方法,该方法返回一个包含 html 表的局部 View ,以避免每次都需要刷新整个页面。
关于c# - 将空列表从 Controller 传递到 Controller asp.net mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32025493/
如标题所示,ans_list是一个答案列表,ans_index是一个数字(答案在词汇表中的索引,但与atm无关) 这里生成的 tree.anslist 是什么? (例如,仅针对第一个),忽略迭代。 f
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将具有一个元素的东西拿走。 这与 How do I “flatte
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将带有一个元素的东西拿走。 这与 How do I “flatte
这个问题已经有答案了: Convert nested list to 2d array (3 个回答) 已关闭 7 年前。 java中有没有快捷方式可以转换 List> 到 String[][] ?
我在排序时遇到问题 List> 。我创建了一个自定义比较器,在其中编写了对数据进行排序的代码。 public class CustomComparator implements Comparator
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Java Generics: Cannot cast List to List? 我只是想知道为什么下面的java代
试图想出一个 LINQy 方法来做到这一点,但我什么也没想到。 我有一个对象列表<>,其中包含一个属性,该属性是逗号分隔的字母代码列表: lst[0].codes = "AA,BB,DD" lst[1
假设我有这些任务: points = [] point = (1, 2) 我怎么会这样做: points += point 它工作得很好,并且给了我点 = [1, 2]。但是,如果我这样做: poin
如何在 scala 中将 List[Task[List[Header]]] 类型转换为 Task[List[Header]]。 我有一个方法返回 Task[List[Header]] 并多次调用 do
如何在 Java 中查找二维列表的元素? 我有一个参数为 List> 的函数我想知道如何找到这个列表的行和列。 最佳答案 如果你喜欢 List> obj 然后你就可以像这样访问 obj.get(cur
分配 List到 List工作正常。 分配 List>到 List>不编译。 代码 public class Main { public static void main(String[] a
我正在用 Java 编写一个方法,该方法必须接收并迭代 Serializable 的 List。 有什么区别: public void myMethod(List list) { } 和 public
我看到很多人想用 mvvm 更新网格/列表/树的一部分,但他们不想刷新整个列表。 对于所有遇到此问题的人,我做了以下示例。 希望这对你有用。 最佳答案 这是一个简单的例子。整个代码中最重要的是: Bi
我正在为现有的 C++ 库编写包装器,该库使用列表,其中 T 是自定义结构。我被建议使用 vector 而不是列表,但我试图避免修改库。 为了更好地理解这个场景,我做了一个简单的应用程序,使用一个列表
List list List list 这两种声明有什么区别吗? 谢谢, 最佳答案 是的。 List可以包含所有派生自 Base 的不同事物的混合物. List包含同质项(从某种意义上说,它们必须全部
有人可以尽可能详细地解释以下类型之间的区别吗? List List List 让我更具体一点。我什么时候想使用 // 1 public void CanYouGiveMeAnAnswer(List l
我有一个元组列表,每个元组都是一对列表。所以我的数据看起来像: mylist = [(['foo', 'bar'], ['bar', 'bar']),(['bar', 'bar'],['bar', '
也许是一个时髦的标题,但我遇到了以下问题: 给定一个类型为 (a * b) list 的列表,我想创建一个类型为 (a * b list) list 的新列表。一个例子: 给定列表 let testL
我是一名优秀的程序员,十分优秀!