Использование списка в значении модели в запросе LINQ
Я нахожусь на очень базовой стадии разработки asp.net MVC. Поэтому иногда я борюсь с простыми запросами LINQ для работы.
от сценария
У меня есть страница, которая имеет некоторыеImage
и комментируйте это изображение пользователями (просто как пост на Facebook, содержащий комментарии пользователей).
Поэтому я сохраняю эти комментарии из текстовой области и отправляю Image ID через запрос Ajax.
Вот мой метод действия контроллера
Сохранение комментария
[HttpPost]
public void SaveComment(CardModel card) {
CardCommentTable commenttable = new CardCommentTable();
commenttable.CardComment = card.cardComment;
commenttable.FKcardID = card.cardID;
db.CardCommentTables.InsertOnSubmit(commenttable);
db.SubmitChanges();
}
Этот комментарий сохраняется вCardCommentTable
у которого есть ссылка внешнего ключа таблицы в том образе, который сохраняется.
Рендеринг изображения и другие поля на странице просмотра
Этот запрос отображает изображение и другие поля, которые делают его публикацией изображения. подобноtitle
, dateofsubmit
, Like
и т.п.
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);
}
Сейчас вcardTable
У меня есть еще один столбец с именемcardComment
в том, что я хочу показать все эти сохраненные комментарии из таблицыCardCommentTable
.
Я попробовал
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);
}
Посмотреть-
@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>
}
Как я могу вставитьList
результат в столбце здесь.
Как мне показать все сохраненные комментарии с этим запросом?
Спасибо за любую помощь.