2016-03-20 15 views
-2

formu göndermek için sayfadan geçmek için çalışıyorum ama hiçbir şans gibi görünüyor.görüntülemek için Html.HiddenFor geçmek ve mvc denetlemek ve denetlemek için denetleyicisi mvc

@model IList<MySiteCom.ViewModels.ReviewViewModel> 
@for (int i = 0; i < Model.Count(); i++) 
{ 
    @Html.HiddenFor((x => x[i].ReviewId)) 
    @Html.ActionLink("comment", "AddComent", new { id = @Html.DisplayFor(x => x[i].ReviewId) }) 

} 

sayfa 2

@model MySiteCom.Models.Comments 

@Html.HiddenFor(a => a.review.ReviewId) 

@using (Html.BeginForm()) 
+0

Değerler birden fazla istek için kalıcı olmayacak, verileri devam ettirmek için ViewData, ViewBag olabilir. Ancak, yayınınızı düzenler ve neyi başarmaya çalıştığınızı eklerseniz, muhtemelen daha iyi bir yol önerebiliriz. Görünümden denetleyiciye gitmek için görünümden gitmezsiniz. –

+0

Katılıyorum, elde etmek istediğim konu budur, bir bakış sayfasındaki yorumum var ve herhangi bir yorumda yorum göndermem gerekiyor. Umarım net – Danny

+0

Denetleyici kodunuzu ve ne denediğinizi göstermeniz gerekir. –

cevap

2

Sen ardından TempData, ViewBag veya ViewData vb yardımıyla diğer Görünüm Denetleyicisi'nden değerini geçmesi Kontrol Cihazına tek bir Görünümün gizli alan değer iletebilirsiniz

görüntüle Ben: . aşağıda gösterildiği gibi Modelinin özellik adıyla doğrudan HiddenFor kullanabilirsiniz 10

@model IList<MySiteCom.ViewModels.ReviewViewModel> 

@foreach (var review in Model) 
{ 
    <input type="hidden" name="ReviewId" value=review.ReviewId /> 
    @Html.ActionLink("comment", "AddComent", new { id = review.ReviewId }) 
} 


Denetleyici:

public ActionResult AddComment([Bind(Exclude = null)] ReviewViewModel review) 
{ 
    //... 
    TempData["revId"] = review.ReviewId; 
{ 


View II:

var value = @TempData["revId"] 

ViewBag, ViewData veya TempData arasındaki farklar için When to use ViewBag, ViewData, or TempData in ASP.NET MVC 3 applications'a bakabilirsiniz. Umarım bu yardımcı olur ...

+0

Bir kod, bir koleksiyona dayalı bir gizli girdi oluşturduğunuzdan (bu, name = "[0] .ReviewId" 'oluşturduğundan, ancak AddComment() yöntemindeki model tek bir nesnedir, bir koleksiyon değil; bağlama başarısız olur ve "comment.ReviewId" değeri varsayılan değeri olur ('' '' int' türünü varsayarak varsayılır) –

+1

Üzgünüm, ama bu da işe yaramıyor - ilk bakışta model 'model IList < MySiteCom.ViewModels.ReviewViewModel> 've' List '' ReviewId' özelliği yoktur.Daha fazla bilgi için, benim sorulara yorumlarıma bakın –

+0

@StephenMuecke Soru net değil, sadece bir örnek vermek istedim Bazı varsayımlar –

İlgili konular