Цель
В настоящее время у меня есть программа со следующей целью. Программа загружает таблицу с X строками, где у каждой строки есть флажок, и когда я выбираю и нажимаю кнопку, значение в полях записывается в одно поле в результирующем представлении. Например, если у меня есть поле имени с именами Bob, John and Karen
, если я установлю флажки 1 и 3, имена Bob and Karen
будут записаны в мое новое текстовое поле в следующем представлении.
Как далеко Я получил
Пока у меня загружена таблица, и когда я выбираю флажок, идентификатор строки передается контроллеру, где я смотрю, который выбирает name
и записывает его в новая переменная на каждой итерации.
Проблема
Проблема, с которой я сталкиваюсь, заключается в том, что в конце всего этого, когда я пытаюсь открыть свой новый вид, несмотря на вызываемый метод новый вид не загружается на страницу, и не отображается никаких ошибок. Я подозреваю, что это из-за того, что мой ajax используется для вызова контроллера, и нет функции sucess, но я не уверен, как я могу сделать то, что я хочу ajax. См. Код.
Tableview.cshtml
Объяснение - В основном здесь происходит то, что я получаю каждый флажок, который был отмечен, и передаю его функции selectMany в контроллере Home. Это отлично работает. `
var SaveList = function () {
// alert("Here");
var arrItem = [];
var commaseperatedIds =
$("#projectsTable tr td input[type=checkbox]").each(function (index, val) {
debugger
var checkId = $(val).attr("Id");
var arr = checkId.split('_');
var currentCheckboxId = arr[1];
var Ischecked= $("#" + checkId).is(":checked", true);
if (Ischecked) {
arrItem.push(currentCheckboxId);
}
})
if (arrItem.length != 0) {
commaseperatedIds = arrItem.toString();
$.ajax({
url:"/Home/SelectList",
type: "POST",
data: { ItemList: commaseperatedIds },
sucess: function (response) {
//Code here
}
})
}
}
Home Controller- SelectList
Объяснение - Здесь я получаю идентификаторы, и для каждого идентификатора я запускаю выбор и беру поле имени. Вот что я хочу сделать sh: для каждого отмеченного флажка я беру имя и добавляю его в один name
, и я получаю это имя с обоими names
в полученном представлении, но ни при каких обстоятельствах я не могу получить вид, чтобы показать.
[HttpPost]
// public JsonResult SelectList(string ItemList)
public ActionResult SelectList(string ItemList)
{
string[]arr = ItemList.Split(',');
string name;
foreach(var id in arr)
{
var currentId = id;
var Report = from t in db.classList
select new
{
t.name
};
name = Report.Select(e => e.name).FirstOrDefault();
}
// return RedirectToAction("CreateMany");
// return View("CreateMany");
return View("/Home/CreateMany");
// return Json("", JsonRequestBehavior.AllowGet);
}
SelectMany
Объяснение - и, наконец, последняя функция, которая является просто возвращаемым видом.
public ActionResult CreateMany()
{
return View();
}
Благодарен, если бы меня указали справа направление.
С уважением
РЕДАКТИРОВАТЬ
`
@model IEnumerable<Generator.Models.ACT_activitiesDescr>
@{
ViewBag.Title = "Activities";
}
<head>
<link href="//cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
<script src="//cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
</head>
@*<link href="@Url.Content("~/Scripts/datatables/jquery.dataTables.min.css")" rel="stylesheet" type="text/css" />*@
@*<!-- Page JS Plugins -->
<script src="~/Scripts/datatables/jquery.dataTables.min.js"></script>
<!-- Page JS Code -->
<script src="~/Scripts/datatables/base_tables_datatables.js"></script>*@
<h3><u> </u></h3>
@*<p style="font-size:25px">
@Html.ActionLink("Add New Task", "Create")
</p>*@
<button type="button" class="button" id="button">Click Me!</button>
<a class="btn btn-success btn-block" onclick="SaveList()"> Open</a>
<table id="projectsTable" class="display table table-bordered table-primary ">
@*<table id="projectsTable" class="display" style="width:100%">*@
<thead>
<tr>
<th>
Select
</th>
<th>
@*@Html.DisplayNameFor(model => model.REF_Projects.Project)*@
Task
</th>
<th>
Type
</th>
<th>
Depart
</th>
<th>
Report Period
</th>
<th>
Submission Date
</th>
<th>Submitted By</th>
<th>Details</th>
</tr>
</thead>
@foreach (var item in Model)
{
<tr style="color:black;">
<td><input type="checkbox" id="Check_@item.actID" name="check_@item.actID" /> </td>
<td>
@*@Html.DisplayFor(modelItem => item.REF_Projects.Project)*@
@if (item.proAct == "Project")
{
@Html.DisplayFor(modelItem => item.REF_Projects.Project)
}
else
{
@Html.DisplayFor(modelItem => item.REF_Activities.Activity)
}
</td>
<td>
@Html.DisplayFor(modelItem => item.proAct)
</td>
<td>
@Html.DisplayFor(modelItem => item.REF_Units.location)
</td>
<td>
@Html.DisplayFor(modelItem => item.reportPs) - @Html.DisplayFor(modelItem => item.reportPe)
</td>
<td>
@Html.DisplayFor(modelItem => item.enterDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.USER_users.fname) @Html.DisplayFor(modelItem => item.USER_users.lname)
</td>
<td>
<button class="btn btn-sm btn-default" type="button" onclick="location.href='@Url.Action("Edit", "Act", new { id = item.actID })'" data-toggle="tooltip" title="Details">@*<i class="fa fa-list-ol"></i>*@View Details</button>
@*@Html.ActionLink("Edit", "Edit", new { id = item.actID }) |
@Html.ActionLink("Details", "Details", new { id = item.actID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.actID })*@
</td>
</tr>
}
</table>
<script>
var SaveList = function () {
// alert("Here");
var arrItem = [];
var commaseperatedIds =
$("#projectsTable tr td input[type=checkbox]").each(function (index, val) {
debugger
var checkId = $(val).attr("Id");
var arr = checkId.split('_');
var currentCheckboxId = arr[1];
var Ischecked= $("#" + checkId).is(":checked", true);
if (Ischecked) {
arrItem.push(currentCheckboxId);
}
})
if (arrItem.length != 0) {
commaseperatedIds = arrItem.toString();
$.ajax({
url:"/Act/SelectList",
type: "POST",
data: { ItemList: commaseperatedIds },
sucess: function (response) {
//Code here
}
})
}
}
</script>
`