Сегодня мне нужно добавить ссылку на одну из моих таблиц столбцов.Добавить ссылку на Datatable в C# MVC 5, прежде чем передавать ее в виде
Таблица создана как дата в моем контроллере, в которой она заполняется запросом базы данных и затем отправляется на просмотр. Есть довольно много решений, чтобы поместить ссылку в datatable, но пока я не могу найти решение, которое не делает этого в представлении.
Моя проблема здесь в том, что однажды отправленный в представление что-либо, что я помещаю в столбцы редактирования или удаления (это где ссылки), просто появляется как строка.
Если попытаться вставить это в таблицу
<a href=\"delete?Id=\"" + reader.GetValue(0) + "\">delete</a>"
затем на представлении я получить строку
"<a href=\"delete?Id=\"" + reader.GetValue(0) + "\">delete</a>".
если попытаться создать элемент управления HyperLink, как этот
HyperLink delete = new HyperLink() { Text = "delete", NavigateUrl = "/delete?Id =\"" + reader.GetValue(0) };
и затем добавьте элемент управления в таблицу. В представлении я просто получаю строку «System.Web.UI.WebControls.HyperLink»
Я немного потерял, как исходить отсюда. Ниже приведен мой полный метод контроллера, который заполняет данные и передает его в представление. Нижеприведенный код представляет собой пример добавления элемента управления HyperLink и строки href.
Есть ли у кого-нибудь решение о том, как добавить гиперссылку или URL-адрес в datatable 'before', чтобы отправить его в представление.
public ActionResult Moved()
{
DataTable table = new DataTable();
table.Columns.Add("Moved From", typeof(string));
table.Columns.Add("Moved To", typeof(string));
table.Columns.Add("Comment", typeof(string));
table.Columns.Add("Edit");
table.Columns.Add("Delete");
using (var reader = SqlHelper.ExecuteReader(ConfigurationManager.ConnectionStrings["RedirectsReader"].ConnectionString, "usp_Redirect_SelectByType", new SqlParameter("@type", 2), new SqlParameter("@sort", "pattern")))
{
while (reader.Read())
{
HyperLink edit = new HyperLink() { Text = "edit", NavigateUrl = "/edit?Id =\"" + reader.GetValue(0) };
HyperLink delete = new HyperLink() { Text = "delete", NavigateUrl = "/delete?Id =\"" + reader.GetValue(0) };
table.Rows.Add(reader.GetValue(1).ToString(), reader.GetValue(2).ToString(), reader.GetValue(3).ToString(),edit,"<a href=\"delete?Id=\"" + reader.GetValue(0) + "\">delete</a>");
}
}
return View(table);
}
Это как мои таблицы создаются в представлении
<table class="table table-striped table-bordered display" cellspacing="0" width="100%" id="contentTable">
<thead>
<tr>
@foreach (DataColumn col in Model.Columns)
{
<th>@col.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@foreach (DataColumn col in Model.Columns)
{
<td>@row[col.ColumnName]</td>
}
</tr>
}
</tbody>
</table>
Мои таблицы создаются динамически, используя петли foreach в представлении, используя таблицу, переданную ему из контроллера. Я хочу сохранить как можно больше ответственности клиента. Таким образом, имеет смысл просто добавлять гиперссылки к таблице, прежде чем они будут отправлены в представление. Вместо того, чтобы просмотреть процесс просмотра данных снова для идентификатора и добавить гиперссылки на стороне клиента. – user2920648
Также мой вопрос задает вопрос, как это сделать, прежде чем перейти к представлению. – user2920648