Я новичок в MVC и работал над MVC 4 с сервисами API и зациклился на передаче данных на частичное представление, которое является модальным всплывающим окном, и мне нужно получить все эти данные при нажатии на столбец продуктов по модальному всплытию, но его а не точно. Я передал данные, т. е. productid, на контроллер, но нокаут js его приближается, но не отображается в модальном всплывающем окне. Вот мой JS код:Как передать данные от действия контроллера на частичный просмотр ...?
var ProductViewModel = function() {
var self = this;
$.ajax({
url: urlProduct + '/AllProducts/',
async: false,
dataType: 'json',
success: function (json) {
self.productsData = json;
}
});
self.getModalProductInfo = function (product) {
alert("Get Product Info - for ID:" + product.ProductId);
var self = this;
$.ajax({
url: urlProduct + '/Modalpopup/' + product.ProductId,
//url : '@Url.Action("/Modalpopup/", "Products")'+=product.ProductId,
//url += '/?min=' + ui.values[0] + '&max=' + ui.values[1];
//$("#ajaxresult").load(url),
//'@{Html.RenderAction("Modalpopup", "Products",new {id=product.ProductId});}'
async: false,
dataType: 'json',
success: function (json) {
self.modalPopupdata = json;
}
});
}
}
ko.applyBindings(new ProductViewModel());
И моя страница продуктов:
<div class="span3" style="margin-right:-1em;">
<ul class="thumbnails" style="height:280px;">
<li >
<div class="thumbnail zoom" id="wrapper">
<a href="#portfolioMod1" data-toggle="modal" data-bind="click:$parent.getModalProductInfo">
<div data-bind="foreach:ProductImages">
<!-- ko if: SortOrder === 1-->
<img data-bind="attr:{src:Product_Image_path}" />
<!-- /ko -->
</div>
</a>
<!-- Start: Modal -->
@Html.Partial("_ProductModalPopup")
<!-- End: Modal -->
<div id="SL13" style="margin-bottom:0px; border-bottom:1px solid #dedede; height:20px">3 colors</div>
<div class="text" style="display:none;"><img src="~/Images/thumb1.gif" /><img src="~/Images/thumb2.gif" />
<img src="~/Images/thumb3.gif" /><img src="~/Images/arrow.gif" align="right"/></div>
<div style="margin-bottom: -3px;" data-bind="text:ProductName" ></div>
<div ng-controller="RatingDemoCtrl"><rating value="rate" max="5" readonly="isReadonly"></rating></div>
<div style="font-weight: lighter;margin-bottom: 5px;" data-bind="foreach:ProductInfo" >
<!-- ko if: Key === 'Price'-->
<span style="color:#fe3c3e;" data-bind="text:Value"></span>
<!-- /ko -->
</div>
<div class="text" id="SD1" >
<button type="submit" class="btn btn-inverse btn-small" onclick="redirect13();" >
<small style=" font-size:8px; "><strong>ADD TO BAG</strong>
</small>
</button>
<span style="float:right" align="top"><button type="submit" class="btn btn-danger btn-small" onclick="redirect12();" >
<small style=" font-size:8px; ">CHECK OUT</small>
</button>
</span>
</div>
<div data-bind="text:ProductId" style="display:none"><div>
<input id="pid" data-bind="text:ProductId" />
</div>
</li>
</ul>
</div>
</div>
и где @ Html.Partial ("_ ProductModalPopup") является частичным видом. Действие действия контроллера:
public ActionResult Modalpopup(int id)
{
ModalPopup modalid = new ModalPopup();
modalid.Productid = id;
ViewBag.Pid = id;
ViewBag.ModalPopup = modalid.Productid;
ViewBag.Message = "The ProductID:";
return PartialView("_ProductModalPopup",id);
// return RestJsonCRUD.InvokeReadCall(URL + "/ProductRest/GetProductDetailsByID/" + id, null);
}
Может ли один помочь мне в сортировке проблемы из приведенной выше коды.
Итак, ваше действие «Modalpopup» - это возврат частичного представления * _ProductModalPopup *, который я предполагаю, скорее всего, HTML, но ваш аякс-вызов ожидает 'json'. Что, если вы измените 'dataType' на' 'HTML''? – asymptoticFault