MVC Flashcards

1
Q

Како се иницијализираат properties во една класа?

A

public string/int/float ime_promenliva {get; set;}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Во C# ако сакаме да поставеме float вредност на некоја променлива, како тоа го правеме?

A

x = 4.8f

//клучната буква е f

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Ако сакаме на страницата да се појави листа од филмови и листа од клиенти, кои се чекорите за да го направеме тоа?

A

Прво, во акцијата поставуваме еден модел од класа што чува објект за филм и објект за клиенти.

Тој модел го поставуваме во View.
Соодветно, во View правеме приказ на страницата со истиот модел од акцијата.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Како можеме преку HTML таг да преминеме на друг view со друга акција?

A

<a></a>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Со која C# готова функција може да најдеме некој објект доколку објектите се подредени редоследно?

A

example:

clients.ElementAt(id)
//доколку моделот е од класата Client
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Доколку се појави exception дека клиентот не е пронајден, според претходниот пример, како ќе се справеме со тоа?

A
if (clients.ElementAt(id) == null) {
                return Content("Not found :("); //ili slicno
            }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Доколку сакаме да направеме textbox и од полето да ги земеме податоците и да ги прикажиме, што треба да направеме во делот кај контролерот?

A

1) Креираме акција со соодветно View за приказ на textbox полињата. Ова го правеме во форма, така што формата ќе прима параметри - акција која ќе ги прикажи податоците, контролер.
Моделот со информациите од text полињата, се испраќа со помош на submit button

2) Креираме акција со HttpPost метод на размена на податоци. Преку неа, го земаме моделот што е веќе исполнет од акцијата на точка 1).
Во оваа акција, правеме Redirect на друга акција која што е одговорна за приказ на податоците.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Што е намената на формата во asp.net?

A

Преку неа, насочуваме со помош на button, од една акција на друга акција.

ex: BeginForm(“InsertNewMovie”, “MovieController”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
Како се иницијализира променлива од типот List  а како од типот Movie?
//класата е Movie
A
1) public static List movies = new
 List() movies { new Movie() {Name, Id, Age . . .}};

2) public static Movie = new Movie { Name, Id, Age . . .};

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Како се прави валидација, ако сакаме да го променеме името на лабелата?

A

[Display(Name = “drugo ime”)]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Како се прави валидација за непополнето поле?

A

[Required]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Како се прави валидација за ранг?

A

[Range(0,99, ErrorMessage=”invalid values”)]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Освен постапката до моделот за валидација, каде на друго место треба да се напишат команди за да успее валидацијата и што значат тие команди?

A
-Во акцијата каде што акцијата го презема View-то на моделот од текст полињата :
                   if(!ModelState.IsValid) {
                  return View("NewMovie", model)
                  }
//NewMovie е акцијата со текст полињата 
//т.е. повторно се враќаме на истиот приказ
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Кои се трите параметри на @Html.ActionLink()

A

Името што ќе се прикаже, име на акција, име на контролер

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Што означува - View(“SomeAction”, model)?

A

Се враќа View што е веќе креирано и како аргумент се предава моделот.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Што треба да се користи како библиотека за валидациите?

A

using System.ComponentModel.DataAnnotations;

17
Q

На кој начин може да се превземе URL на слика од база и истата да се вметне вo View?

A

@Url.Content(Mode.URL)

18
Q

Доколку имаме креирано скрипта во Scripts директориумот и App под-директориумот и скриптата се чува под името - MusicScripts, како ќе ја вметнеме во View оваа скрипта?

A

1 ) @section Scripts{

}

2) @Scripts.Render(“~/Scripts/App/MusicScripts.js”)
3) @section Scripts{

$(function () {

$("#album-list img").mouseover(function () {
    $(this).animate({ height: '+=25', width: '+=25' }).animate({ height: '-=25', width: '-=25'})
})

})

}

19
Q

Додавање на Ajax скрипта во View?

A

@section Scripts{

}
//со претходно инсталиран пакет од NuGet 
//Install-Package Microsoft.jQuery.Unobtrusive.Ajax
20
Q

Дади пример за креирање на Ajax helper во View.

A

@Ajax.ActionLink(“Албум на попуст за денес”,
“DailyDeal”,
null,
new AjaxOptions { UpdateTargetId = “dailydeal”,
InsertionMode = InsertionMode.Replace,
HttpMethod = “GET”},
new { @class = “btn btn-default”}
)

arg1 - име на линк
arg2 - која акција од контролерот ќе се повика со соодветно partial view [дел од стр. ќе се рефрешира]
arg4 - arg4.1. -> што ќе се update кога ќе заврши ајах
arg4.2. -> при клик на линкот се заменува
моменталната страница со друга

//другите аргументи се објаснати сами по себе

21
Q

Како може да се земе random вредност од табелата во базата на некоја класа?

A

var album = db.Albums.Include(a => a.Artist).Include(a => a.Genre).OrderBy(a => System.Guid.NewGuid()).First();

//model - Album кој содржи објекти од Artist и Genre

22
Q

Откако преку NuGet ќе го инсталираме соодветниот пакет за податочни табели [Install-Package jquery.datatables -version:1.10.11], како го поставуваме при тоа?

A

1) Bundle Config - во делот за скрипти додаваме:

”~/Scripts/DataTables/jquery.dataTables.js”,
“~/Scripts/DataTables/dataTables.bootstrap.js”

2) За css, во Content делот додаваме:

”~/Content/DataTables/css/dataTables.bootstrap.css”

3) Kреираме податочна табела во соодветното View:
@section Scripts{

        $(document).ready(
            function () {
                $("#album").DataTable();
            }
        );
}
//album e id-to на табелата која ги содржи //информациите за моделот Album
23
Q

Како се доделува улога на корисник?

A

1 чекор: се пополнува табелата во базата на AspNetRoles со кој тип на улога сакаме да доделиме;

2 чекор: во AccountController ја бараме акцијата за регистрирање.
Во првиот (ако не и единствениот) if услов, ја поставуваме следната команда:

await UserManager.AddToRoleAsync(user.Id, “imeNaUloga”);

24
Q

Како да доделеме различно View на корисник што нема одредена улога?

A

Во акцијата што не сакаме да ја гледа некој корисник, го правеме следното:

 if(!User.IsInRole("Administrator")){
 return View("Nekoe drugo view", nekojSiModel);
}
25
Q

Како се врши проширување на кориснички податоци?

A

1 чекор: во AccountViewModel кај RegisterViewModel поставуваме public string another_info {get; set;}

2 чекор: во Identity model во класата Application User додаваме public string another_info {get; set;}

3 чекор: во AccountController во Register акцијата, во променливата user поставуваме вредноста што ја сакаме: another_info = model.another_info

//но со ова нема да се постави колона во табелата
//во базата за дополнителната информација
26
Q

Како да се креира колона за дополнителната информација во табелата во базата?

A

Add-Migration name

Update-database

27
Q

Како се поставува SSL на проект?

A

Во Properties на проектот, SSL Enabled постави го на True.

Со тоа, URL започнува со https.

28
Q

Како се регистрира апликација кај друг сервис?

A

Добиваме Id и други соодветни податоци за корисникот.

Потоа, во App_Start\Startup.Auth.cs има одредени сервиси кои се коментирани. На соодветниот сервис ги бришеме коментарите и ги запишуваме соодветните вредности.

29
Q

За да може да користеме Entity Framework, кои работи прво треба да ги поставеме?

A

1) Клучеви на секоја класа/модел
2) Креираме класа за контекст (MovieContext) што наследува од DbContext и во таа класа иницијализираме соодветни функционалности
3) Овозможуваме миграции и додаваме миграции и правеме update на базата

30
Q

Доколку користеме Individual Account за пермиса, на кој начин се креираат миграции и табели во база?

A

1)Во Identity controller поставуваме толку табели колку што ни требаат од соодветните модели;
[DbSet movies]

2) Co NuGet поставуваме Enable Migrations, Add-Migration Initial, Update database.
3) Креираме контролери со соодветниот App контекст, и соодветната класа/табела од базата.
4) Доколку треба, во Layout поставуваме соодветни акции со контролери за menu bar.

31
Q

Како поставуваме Jquery datatables?

A

1) Co NuGet - Install-Package jquery.datatables -Version:1.10.11 / .15
2) Co NuGet - Install-Package bootbox -Version 4.3.0

32
Q

Што е функцијата на bootbox?

A

js is a small JavaScript library which allows you to create programmatic dialog boxes using Bootstrap modals, without having to worry about creating, managing, or removing any of the required DOM elements or JavaScript event handlers.

33
Q

Втор начин на реализирање некоја функција со jquery и bootbox е со api

A

1) Креирање на контролер со web api
2) Конфигурација со помош на readme.txt
//подобро е бидејќи не ги менуваме основните //функционалности од контролер
[DeleteConfirmed - Delete]
//api не враќа view туку податоци

34
Q

Како може да извршиме авторизација [корисниците да пристапуваат само доколку се најавени]?

A

Во FilterConfig во AppStart, ја пишеме следната команда:

filters.Add(new AuthorizeAttribute());

35
Q

Доколку сакаме на одредена акција корисниците да можат да пристапат без најава, како го овозможуваме тоа?

A

Со претходниот чекор + пред акцијата го пишеме следното:

[AllowAnonymous]

36
Q

Авторизација на цел контролер?

A

[Authorize] пред контролер или [Authorize] пред некоја акција ако сакаме само за одредена акција да имаме авторизација

37
Q

Како се доделува авторизација на администратор во апликацијата?

A

[Authorize(Roles=”Administrator, Editor”)].

Но за ова да успее прво треба да се конфигурираат улогите во базата – AspNetRoles табела, додаваме неколку улоги

38
Q

Кој контролер и променлива помагаат при креирање/бришење на улога?

A

AccountController и променливата - _userManager и со наша акција [ex: AddUserToRole()]

Дополнително, во ManageView креираме public класа што вклучува карактеристики што треба да ги има улогата.

Во акцијата AddUserToRole креираме модел од класата во ManageView [ex: AddRoleModel] и во променливата Roles која е листа, чуваме улоги во вид на стринг променливи.
Го враќаме model-от во View.

39
Q

Како да направеме deployement на веб апликацијата од серверска страна?

A

десен клик на проектот, и клик на Publish.