Usando lista em um valor de modelo na consulta LINQ
Estou no estágio básico do desenvolvimento do asp.net MVC. Então, às vezes, luto com consultas LINQ simples para trabalhar.
cenário-
Eu tenho uma página que tem algunsImage
e comente essa imagem pelos usuários (assim como uma postagem no facebook que contém comentários dos usuários).
Portanto, estou salvando esses comentários da área de texto e enviando o Image ID via consulta Ajax.
Aqui está o meu método de ação do controlador -
Salvando comentário-
[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 comentário é salvo emCardCommentTable
que possui referência de chave estrangeira da tabela em que a imagem é salva.
Renderização de imagem e outros campos na visualização da página
Essa consulta renderiza a imagem e outros campos que a tornam uma postagem de imagem. Gostartitle
, 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);
}
Agora emcardTable
Eu tenho mais uma coluna chamadacardComment
em que eu quero mostrar todos os comentários salvos da tabelaCardCommentTable
.
Então eu tentei ...
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);
}
Visão-
@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>
}
Como posso inserirList
resultar em uma coluna aqui.
Como mostro todos os comentários salvos com esta consulta acima?
Obrigado por qualquer ajuda.