Verwenden der Liste in einem Modellwert in einer LINQ-Abfrage
Ich bin in einem sehr grundlegenden Stadium der ASP.NET MVC-Entwicklung. Daher habe ich manchmal Probleme mit einfachen LINQ-Abfragen.
Szenario-
Ich habe eine Seite, die einige hatImage
und kommentieren Sie dieses Bild von Benutzern (wie ein Beitrag auf Facebook mit Kommentaren von Benutzern).
Daher speichere ich diese Kommentare aus dem Textbereich und sende die Bild-ID per Ajax-Abfrage.
Hier ist meine Controller-Aktionsmethode
Kommentar wird gespeichert-
[HttpPost]
public void SaveComment(CardModel card) {
CardCommentTable commenttable = new CardCommentTable();
commenttable.CardComment = card.cardComment;
commenttable.FKcardID = card.cardID;
db.CardCommentTables.InsertOnSubmit(commenttable);
db.SubmitChanges();
}
Dieser Kommentar wurde in gespeichertCardCommentTable
das Fremdschlüsselreferenz der Tabelle in diesem Bild hat, wird gespeichert.
Rendern von Bildern und anderen Feldern auf der Ansichtsseite
Diese Abfrage rendert Image und andere Felder, die es zu einem Image-Beitrag machen. Mögentitle
, dateofsubmit
, Like
usw.
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);
}
Jetzt incardTable
Ich habe noch eine Spalte mit dem NamencardComment
darin möchte ich alle diese gespeicherten Kommentare aus der Tabelle anzeigenCardCommentTable
.
Also habe ich versucht-
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);
}
Aussicht-
@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>
}
Wie kann ich einfügenList
Ergebnis in einer Spalte hier.
Wie zeige ich mit dieser Abfrage alle gespeicherten Kommentare an?
Danke für jede Hilfe.