Я вызываю функцию javascript, которая вызывает метод действия, который возвращает либо частичное представление, либо полное представление. Я хочу загрузить частичное представление в модальном всплывающем окне, и если это полное представление, то просто хочу перенаправить его.
View
foreach(var productTemplate in Products)
{
<a href="#" class="btn btn-sm btn-primary" onclick="loadModal('@productTemplate.productId,'@productTemplate.customerId')"> Add New Product</a>
}
<div class="modal fade" id="mymodel" role="dialog" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Shared Products</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body" id="mymodelbody">
</div>
</div>
</div>
<script>
var loadModal = function (productId, customerId) {
$.ajax({
type: 'GET',
url: '/NewProductTemplate/CreateNewProduct',
cache: false,
data: {
productId: productId,
customerId: customerId
},
dataType: 'html',
success: function (data) {;
$("#mymodelbody").html(data);
$("#mymodel").modal("show");
}
});
}
</script>
NewProductTemplateController code:
public ActionResult CreateNewProduct(Guid productId, Guid customerId)
{
var sharedProduct = _productTemplateService.GetSharedProducts(productId);
var _finalSharedProducts = (sharedProduct.Any(t => t.productId != productId));
if (_finalSharedProducts)
{
var sharedProdctTemplate = _productTemplateService.GetSharedProduct(productId);
return PartialView("_shared", new SharedModel
{
SharedProduct = sharedProdctTemplate
});
}
else
{
_productTemplateService.CreateNewProduct(productId);
return RedirectToAction("Details", "ProductTemplate");
}
}
Проблема в том, что когда контроллер возвращает полный вид, он загружается в модальном всплывающем окне, которое мне не нужно. Я просто хочу проверить данные в функции успеха и решить, следует ли загружать модальные для частичного просмотра ИЛИ перенаправить на полный просмотр. Я не уверен, как это сделать.
Может кто-нибудь помочь мне здесь? Спасибо!
UPDATE:
Я смог заставить его работать как
if (data.indexOf('<!DOCTYPE html>') != 0) {
$("#mymodelbody").html(data);
$("#mymodel").modal("show");
} else {
window.location.href = '/ProductTemplate/Details?productTemplateId=' + productId;
}
Еще один вопрос:
Можно ли как-нибудь создать объект ProductModal в javascript и передать его в метод действия Details в ProductTemplate?