В последнее время у нас возникли проблемы с сохранением объектов данных в каркасе сущностей, даже если мы этого не просим.Вот пример:
public virtual ActionResult Index()
{
var productListViewModel = new ProductListViewModel
{
Products = ProductService.GetAllProducts()
};
// temporarily override file url to display images
foreach (var product in productListViewModel.Products)
{
product.ImageFileName = FileUploadService.GetProductThumbnailUrl(product);
}
return View(productListViewModel);
}
Функция GetProductThumbnailUrl () возвращает нас с форматированной строкой пути, сделанной из статического URL + ImageFileName.Однако по понятным причинам мы не хотим сохранять этот путь и просто временно использовать его для просмотра.
Но вот странная часть: иногда все эти продукты сохраняются в базе данных, которая дает нам искаженные URL-адреса, которые мы не можем использовать.
Так что мой вопрос сейчас заключается в том, что может вызвать это?(Я использую Unity для деп. Инъекции)
А что касается исправления, я просто ничего не меняю в объекте данных, а вместо этого использую визуализированное действие:
public ActionResult GetProductUrl(DomainModel.Product p)
{
return Content(FileUploadService.GetProductThumbnailUrl(p));
}
А в виде:
@Html.Action(MVC.Admin.Product.GetProductUrl(p))