Приведите основные проблемы использования модели Model Binding. Какие Вы знаете способы их решения?



Model Binding (модельді байланыстыру)- бұл сұраныс мәліметтерін пайдалану арқылы обьектілерді жасау үшін контроллердің жұмысын жеңілдетуге арналған функция.ASP.NET MVC –де Model Binding мына кодпен жұмыс істеуге мүмкіндік береді:public ActionResult Create(){var product = new Product() { AvailabilityDate = DateTime.Parse(Request["availabilityDate"]),CategoryId = Int32.Parse(Request["categoryId"]),Description = Request["description"],Kind = (ProductKind)Enum.Parse(typeof(ProductKind),Request["kind"]),Name = Request["name"],UnitPrice = Decimal.Parse(Request["unitPrice"]),UnitsInStock = Int32.Parse(Request["unitsInStock"]) }};бұл кодты осылай жазуға да болады-

public ActionResult Create(Product product)
{
// ...
}

ASP.NET сұраныс жолының параметр атауларын автоматты түрде обьектідегі сипат атауларымен салыстырады. Бұл JSON post мәндерін де қабылдайды. Model Binding тіпті коллекциялар мен кірістірілген обьектілер сияқты кеңейтілген жағдайларда да жұмыс істейді, бірақ коллекциялардың синтаксисінде (коллекциядағы элементтерді көрсетуді қамтитын индексаторды қолдануда) мұқият болуыңыз керек. Кейбір жағдайларда, сізге өзіңіздің байланыстырушы моделіңізбен ауқымын кеңейтуге болады. Бұны біз DefaultBindingProvider-ды мұралау арқылы шеше аламыз.

 

Как используется модель связи с данными ресурса по умолчанию? Какими избирательными свойствами они обладают?

ASP.NET MVC байланыс моделі HTTP сұраныс пен модель арасындағы мәліметтерді көрсетуге мүмкіндік береді. Бұл мәліметтерді қолдана отырып, .NET объектін құру процесі болып табылады. Байланыс моделі HTTP сұранысы мен C# әдістер әрекетін байланыстыру көпірі болып табылады. Бұл жобалаушыларға мәліметтермен ыңғайлы жұмыс істеуге көмектеседі, себебі POST және GET автоматты түрде сіз көрсеткен мәліметтер моделіне барып түседі. POST іс-әрекеттер әдісін құруды қарастырайық.

// POST: Employee/Create

[HttpPost]

public ActionResult Create(FormCollection collection){

try{

// TODO: Add insert logic here

return RedirectToAction("Index");

}catch{

return View();

}

}

 

Сұраныс параметрі бойынша байланыстыру

Бұл өте қарапайым әдіс болып табылады, бірақ оны қолдану кезінде барлық нәрсені қадағалауда ұстану керек. Оның қағидасы қарапайым болып табылады: модельдің қасиеттеріне көшірме жасайтын аты мен параметр типі анықталған әдіс құру керек.Сонымен қатар, модельдің экземплярының орнына View() әдісіне бос сілтеме жүргізу керек. Мысал үшін Payments контроллеріне AddFromParams іс-әрекетін қосайық.

// GET: /Payments/AddFromParams

public ActionResult AddFromParams(

string userLogin,

double amount,

string info)

{

return this.View("Add");

}

Как построить модель взаимодействия с коллекциями? Назовите основные причины возникновения такой проблемы.

Коллекция класс бірге нысандарды топтау және оларды тапсырмаларды орындау үшін арнайы әзірленген класс жиынтығы болып табылады. жинау класс негізгі функционалдық, Collection элементтер қосу коллекциядан элементтерін алып тастау, жинау ІІБ элементтердің санын алу жатыр. Тізім класы жинау мүшесі болып табылады және System.Collections.Generic есім аясында анықталған.

C # тізімі <T> класс индексі арқылы кіруге болады объектілердің қатты терілген тізімін білдіреді. Тізімі элементтері бүтін индексті қолдану арқылы қол жеткізуге болады. Бұл Жинақта индекстері нөлдік негізделген болып табылады.Мысалыpublic class Table1{ public int Id {get;set;} piblic string Name {get;set;} public int TypeId {get;set;}///ссылка на справочник public int OrderId {get;set;} public virtual Type Types {get;set;} public virtual ICollection<Order> Orders {get;set;}} public class Type{ public int Id {get;set;} public string TypeName {get;set;}} public class Order{ public int Id {get;set;} public string Name {get;set;}

 

 


Дата добавления: 2018-02-15; просмотров: 508; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!