Usando la lista en un valor modelo en la consulta LINQ
Estoy en una etapa muy básica del desarrollo MVC de asp.net. Así que a veces me cuesta trabajo hacer consultas sencillas con LINQ.
guión-
Tengo una página que tiene algunaImage
y comente esa imagen de los usuarios (como una publicación en Facebook que contiene comentarios de los usuarios).
Así que estoy guardando esos comentarios del área de texto y enviando ID de imagen a través de la consulta Ajax.
Aquí está mi método de acción controlador
Guardando comentario-
[HttpPost]
public void SaveComment(CardModel card) {
CardCommentTable commenttable = new CardCommentTable();
commenttable.CardComment = card.cardComment;
commenttable.FKcardID = card.cardID;
db.CardCommentTables.InsertOnSubmit(commenttable);
db.SubmitChanges();
}
Este comentario se guarda en.CardCommentTable
que tiene la referencia de clave externa de la tabla en esa imagen se guarda.
Imagen de renderizado y otros campos en la página de vista
Esta consulta muestra la imagen y otros campos que la convierten en una publicación de imagen. Me gustatitle
, dateofsubmit
, Like
etc.
public ActionResult CardDetails(CardModel card) {
var cardDetail = (from u in db.CardTables
where u.CardID == card.cardID
select new CardModel {
cardID = u.CardID,
cardHashCode = u.CardHashCode,
cardDate = u.CardDate,
cardFileName = u.CardFileName,
cardFilePath = u.CardFilePath,
cardTitle = u.CardTitle
}).ToList();
return View(cardDetail);
}
Ahora encardTable
Tengo una columna más llamadacardComment
en eso quiero mostrar todos esos comentarios guardados de la tablaCardCommentTable
.
Así que intenté ...
public ActionResult CardDetails(CardModel card) {
var allsavedcomments= (from u in db.CardCommentTables
where u.FKcardID == card.cardID
select u).ToList();
var cardDetail = (from u in db.CardTables
where u.CardID == card.cardID
select new CardModel {
cardID = u.CardID,
cardHashCode = u.CardHashCode,
cardDate = u.CardDate,
cardFileName = u.CardFileName,
cardFilePath = u.CardFilePath,
cardTitle = u.CardTitle,
cardComment = allsavedcomments // Trying to render all saved coments here.
}).ToList();
return View(cardDetail);
}
Ver-
@model IEnumerable<FunRanger.Models.CardModel>
@foreach (var item in Model) {
<script type="text/javascript">
$(function () {
$('#save-comment').click(function () {
var textareavalue = $('#textarea-comment').val();
$.ajax({
url: '/Home/SaveComment/',
type: 'post',
data: '&cardComment=' + textareavalue + '&cardID=' + '@item.cardID',
success: function (data) {
$('#all-comments').append(data);
}
});
});
});
</script>
using (Html.BeginForm()) {
@Html.ValidationSummary(true)
@if (Model != null) {
<h2 class="header-wrapmain">
@item.cardTitle
</h2>
@item.cardDate.ToShortDateString()
<img src="@item.cardFilePath" />
<a href="#" class="@item.cardHashCode" rel="tooltip" data-placement="bottom" title="Filter by @item.cardHashCode">
#@item.cardHashCode</a>
}
else {
<div class="alert alert-danger">
No More items to preview
</div>
}
}
<textarea class="span12" rows="5" id="textarea-comment" style="resize: none" placeholder="Enter a comment..."></textarea>
<a href="javascript:;" id="save-comment" class="btn-primary btn">Save comment</a>
<ol>
<li>
@item.cardComment
</li>
</ol>
}
¿Cómo puedo insertarList
resulta en una columna aquí.
¿Cómo muestro todos los comentarios guardados con esta consulta anterior?
Gracias por cualquier ayuda.