2015-12-17 3 views
1

Я использую ASP.Net MVC 5 и Razor Engine.
Я хочу реализовать страницу для показа продуктов с помощью ajax.@ Ajax.ActionLink не отправил данные контроллеру ASP.Net MVC?

Это мой код:

HomeController:

public ActionResult GoodDetails(int id) 
    { 
     Models.NishtmanDBEntities db = new NishtmanDBEntities(); 
     BlGoodDetail blGoodDetail = new BlGoodDetail(); 
     HomeVM vm = new HomeVM(); 

     var goodDetails = db.GoodDetails.Where(p => p.FKSubGoods == id).ToList(); 
     vm.GoodDetails = goodDetails; 
     return View(vm); 

    } 
public PartialViewResult GoodDetailsAjax(int id) 
    { 
     HomeVM vm = new HomeVM(); 
     var GoodDetailsAjax = db.GoodDetails.Where(p => p.DetailsGoodID == id).ToList(); 
     vm.GoodDetails = GoodDetailsAjax; 
     return PartialView("_GoodDetailsAjax", vm); 
    } 

GoodDetails.cshtml:

@model NP1.ViewModels.HomeVM 
@section scripts{ 
    <script src="~/Scripts/jquery-2.1.4.min.js"></script> 
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 
    } 

<div style="width: 100%; background-color: white;"> 
    @foreach (var item1 in Model.GoodDetails) 
     { 
    <a href="@Url.Action("GoodDetailsAjax", "Home", new { id = @item1.DetailsGoodID })"> 
    @Ajax.ActionLink(" ", "GoodDetailsAjax", new AjaxOptions() 
      { 
       HttpMethod = "GET", 
       UpdateTargetId = "DivAjax", 
       InsertionMode = InsertionMode.Replace 
      } 
     ) 


    <input type="image" class="img-responsive" style="width:120px; height:120px;" src="@Url.Content(item1.DetailsSmallImage1.ToString())"> 

</a> 
} 
</div> 
<div id="DivAjax"> 

</div> 

_GoodDetailsAjax.cshtml:

@model NP1.ViewModels.HomeVM 
<div> 
@foreach (var item in Model.GoodDetails) 
{ 
    <img class="img-responsive" src="@Url.Content(item.DetailsImage1.ToString())" style="width:400px;height:320px;"> 
    <img class="img-responsive" src="@Url.Content(item.DetailsImage2.ToString())" style="width:400px;height:320px;"> 
    <img class="img-responsive" src="@Url.Content(item.DetailsImage3.ToString())" style="width:400px;height:320px;"> 
    <img class="img-responsive" src="@Url.Content(item.DetailsImage3.ToString())" style="width:400px;height:320px;"> 

} 

мой вопрос: нет ошибок, почему это не сработало? когда я нажимаю на изображения в GoodDetails, ничего не происходило.

+0

какая ошибка вы получаете? –

+0

Нет ошибок, коды не работают. изображения не показывались с частичным видом –

+0

Вы проверили Model.GoodDetails count –

ответ

0

Ваш код должен быть

@Ajax.ActionLink(" ", "GoodDetailsAjax", new { id = @item1.DetailsGoodID }, new AjaxOptions() 
{ 
HttpMethod = "GET", 
UpdateTargetId = "DivAjax", 
InsertionMode = InsertionMode.Replace 
} 
) 

вы не проходя new { id = @item1.DetailsGoodID } к ActionLink. проблема в том, что вы не получаете id в действии контроллера.

+0

Извините, что много времени, я пробую это, но он пока не работает. теперь все в порядке, но ..., Еще раз спасибо –

Смежные вопросы