2014-06-05 16 views
13

içinde hücre içeriğini oluşturan bir ASP.net MVC uygulaması geliştiriyorum.ASP.NET MVC, Grid.MVC

Daha önce bir ürün tablosunu görüntülemek için aşağıdaki kodu kullandım. Bu iyi çalıştı

foreach (var item in Model) 
{ 
    <div class="row"> 
    <div class="cell"> 
     @Html.ActionLink(item.productName, "ViewProduct", "Showcase", 
     new { productID = item.productID }, null) 
    </div> 
    <div class="cell"> 
     @item.quantity 
    </div> 
    <div class="cell"> 
     @item.price 
    </div> 
    </div> 
} 

, ben ürünün ayrıntılarını görüntüleyen görünüme yönlendirmek için bir bağlantı olarak Nx1'st elemanını yapmak başardı.

Daha sonra MVC.Grid Nuget paketini kullanarak ürün tablosunu görüntülemek için GridView uygulamasını uygulamak istedim.

Şebeke düzgün çalışıyor ancak Nx1'in öğesinin bağlantıyı yapabilmesi için bağlantı olarak yapamıyorum.

Bunu denedim ama çalışmıyor. Ben Nx1 hücrede olsun

@Html.Grid(Model).Columns(columns =>{ 
    columns.Add(model => model.productName).Titled("Name").Filterable(true) 
    .RenderValueAs(o => Html.ActionLink(o.productName, "ViewProduct", "Showcase", 
     new { productID = o.productID }, null)); 
    columns.Add(model => model.quantity).Titled("Quantity Available"); 
    columns.Add(model => model.price).Titled("Price"); 
}).WithPaging(3).Sortable(true) 

çıktısı:

<a href="/Showcase/ViewProduct/?productID=15">Galaxy Note 3</a> 

İstenilen çıktı: Galaxy Note 3

bana yardım edin. Teşekkürler. Bu

columns.Add(model => model.productName).Titled("Name") 
.Filterable(true).Sanitized(false).Encoded(false). 
    RenderValueAs(model => Html.ActionLink(model.productName, 
    "ViewProduct", "Showcase", new { productID = model.productID }, null) 
     .ToHtmlString()); 
+0

columns.Add (modelini => model.productName) (true) .Titled ("Ad"). Filtrelenebilir .RenderValueAs (model => Html.ActionLink (deneyin sorunu çözüldü –

+0

Hala çalışmıyor Aynı çıktıyı alıyorum – RandomUser

+0

çıktısını gösterebilir ve istediğinizi gösterebilir misiniz? –

cevap

17

model.productName, "ViewProduct", "Vitrin", yeni {productID = model.productID}, null));
+1

harika bir soru, harika cevap! –

+0

İyi bul. ToHtmlString'e ihtiyacım yoktu, ama Sanitized (false) ve Encoded (false) eksik. Bu iki yöntemi zincire eklemek problemimi çözdü. – barrypicker

+0

XSS açığı hakkında ne :) –