Model verilerim (liste) bu durumda başka bir viewmodel verisi (liste) ile nasıl eşlenir? İşte Model verilerimi (liste) başka bir viewmodel verisiyle eşleme (liste) MVC asp.net
i ne var:-
:
Benim json ViewModel
public class JsonViewModel
{
public List<JsonItem> Items { get; set; }
}
public class JsonItem
{
public string Name { get; set; }
public int Unit { get; set; }
public decimal Price { get; set; }
public IEnumerable<Item> ItemStock { get; set; }
}
Benim asıl Modeli bu şekilde aktarılması gerektiğini
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public int QuantityInPack { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
public bool IsHidden { get; set; }
}
İstediğin ve db DBContext ne anlama geldiğini anlamamıza Eğer
Item.QuantityInPack = JsonItem.Unit
Item.Price = JsonItem.Price
nerede Item.Name = JsonItem.Name
Kontrolör
public ActionResult Index()
{
// 1. Perform HTTP request to retrieve the JSON.
var webClient = new WebClient();
string rawJson = webClient.DownloadString("http://my_json_data");
// 2. Parse the JSON.
var jsonRootObject = JsonConvert.DeserializeObject<JsonViewModel>(rawJson);
// 3. Map to viewmodel
var viewModel = new JsonViewModel
{
Items = jsonRootObject.Items.Select(i => new JsonItem
{
Name = i.Name,
Unit = i.Unit,
Price = i.Price
}).ToList()
};
/// var TestItem = db.Items.ToList();
/// TestItem.QuantityInPack = JsonItem.Unit
/// TestItem.Price = JsonItem.Price
/// where Item.Name = JsonItem.Name
///
/// (I know it's a bad, but I wanted to explain what I mean)
/// Here i should map data in some way
///
///
// 4. Return mapped model to view
return View(TestItem???);
}
sen (http [AutoMapper] gibi benzer bir şey arayın denediniz. org /) bu kuralları [sözleşmeler] kullanarak haritalandırabilir (https://github.com/AutoMapper/AutoMapper/wiki/Conventions). Bu yeterli değilse, kendi özel [resolvers] 'ınızı sağlayabilirsiniz (https://automapper.codeplex.com/wikipage?title=Custom%20Value%20Resolvers). – kayess
Ayrıca sizi raylardan uzaklaştırmak istemiyorum, ama viewmodel yapı mantığını [soyutlama] 'ya taşıyorsunuz (http://benfoster.io/blog/using-the-view). -kolay-desen-in-aspnet-mvc), kontrol cihazınızı hafif tutmanıza yardımcı olabilir ve sadece viewmodel oluşturucunuzu doğru bir şekilde test etmeniz gerekir [davranış] (http://googletesting.blogspot.hu/2013/08/ Test-on-tuvalet-test davranış not.html). – kayess