Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Изменение представления About ⇐ ПредыдущаяСтр 5 из 5
1. Замените код в Views\Home\About.cshtml файла следующим кодом: @model IEnumerable<ContosoUniversity.ViewModels.EnrollmentDateGroup> @{ ViewBag.Title = "Student Body Statistics";} <h2>Student Body Statistics</h2> <table> <tr> <th> Enrollment Date </th> <th> Students </th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.EnrollmentDate) </td> <td> @item.StudentCount </td> </tr>}</table>2. Запустите приложение и нажмите меню About. Количество студентов, зачисленных отображает в таблице.
Работа с изображениями 1. с помощью запросов sql На update обновить поле таблицы с image update Buses set bus_picture = (SELECT MyImage.* from Openrowset(Bulk 'D:\3.png', Single_Blob) MyImage) where id_bus = 3
2. в представления таблиц (INDEX.CSHTML, Details.cshtml), имеющей image, добавить элемент управления: <td>
@{ byte[] photo = item.bus_picture; string imageSrc = null; if (photo!= null) { MemoryStream ms = new MemoryStream(); ms.Write(photo, 0, photo.Length); string imageBase64 = Convert.ToBase64String(ms.ToArray()); imageSrc = string.Format("data:image/jpg;base64,{0}", imageBase64); string base64String = Convert.ToBase64String(photo, 0, photo.Length); } }
<img src="@imageSrc" alt="Image" width="150" height="100" /> </td>
3. В Create.cshtml Добавить @model WebExASP_Full.Buses
@{ ViewBag.Title = "Create"; }
<h2>Новый атвобус</h2>
@using (Html.BeginForm(Html.BeginForm("Create", "Buses", null, FormMethod.Post, new {enctype = "multipart/form-data"})))
И элементы управления: <div class="form-group"> @Html.LabelFor(model=>model.bus_picture, new { @class = "control-label col-md-2" }) <div class="col-md-10"> <input type="file" name="upload" value="Обзор..." /> </div> </div>
<div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="Добавить" class="btn btn-default" /> </div> </div>
В контроллере этого представления изменить метод public ActionResult Create([Bind(…. public ActionResult Create([Bind(Include="id_bus,name_bus,id_model,date_bus,quant,bus_picture,bus_price")] Buses buses, HttpPostedFileBase upload) { if (ModelState.IsValid) { if (upload!= null && upload.ContentLength > 0) { using (var reader = new System.IO.BinaryReader(upload.InputStream)) { buses.bus_picture = reader.ReadBytes(upload.ContentLength); } } db.Buses.Add(buses); db.SaveChanges(); return RedirectToAction("Index"); }
ViewBag.id_model = new SelectList(db.ModelsofBuses, "id_model", "name_model", buses.id_model); return View(buses); }
4. в Edit.cshtml @model WebExASP_Full.Buses
@{ ViewBag.Title = "Edit"; }
<h2>Edit</h2>
@using (Html.BeginForm(Html.BeginForm("Edit", "Buses", null, FormMethod.Post, new { enctype = "multipart/form-data" })))
Элемент управления: <div class="editor-label">Фото</div> <div class="editor-field">
@if (Model.bus_picture == null) { @:None } else { byte[] photo = Model.bus_picture; string imageSrc = null; if (photo!= null) { MemoryStream ms = new MemoryStream(); ms.Write(photo, 0, photo.Length); string imageBase64 = Convert.ToBase64String(ms.ToArray()); imageSrc = string.Format("data:image/jpg;base64,{0}", imageBase64); string base64String = Convert.ToBase64String(photo, 0, photo.Length); }
<img width="250" height="150" src="@imageSrc" /> } <div>Выбрать новую фотографию: <input type="file" name="upload" /></div> </div>
В контроллере этого представления изменить метод public ActionResult Edit([Bind(Include =…
try { if (ModelState.IsValid) { db.Entry(buses).State = EntityState.Modified; if (upload!= null && upload.ContentLength > 0) { using (var reader = new System.IO.BinaryReader(upload.InputStream)) { buses.bus_picture = reader.ReadBytes(upload.ContentLength); } db.SaveChanges(); }
else { db.Entry(buses).Property(m => m.bus_picture).IsModified = false; db.SaveChanges(); }
return RedirectToAction("Index"); }
return View(buses); } catch(Exception e) {} Регистрация
1. создаем ХП к базе на Insert
CREATE PROCEDURE [dbo].[Insert_User] @Email NVARCHAR(30), @Password NVARCHAR(20), @Nickname NVARCHAR(20) AS BEGIN SET NOCOUNT ON; IF EXISTS(SELECT email FROM UsersASP WHERE email = @Email) BEGIN SELECT -1 AS UserId -- Username exists. END
ELSE BEGIN INSERT INTO [UsersASP] ([email] ,[password] ,[name_surname] ,[date_reg]) VALUES ,@Password ,@Nickname ,GETDATE()) select 1 --SELECT SCOPE_IDENTITY() AS UserId -- UserId END END 2. проверяем выполнение ХП на сервере с помощью EXECUTE!!!!
3. Добавляем ХП в модель, она отобразится как функция (а не свойство), ее можно увидеть только в ModelBrowser
4. Редактируем класс RegisterViewModel в AccountViewModels.cs в зависимости от нужных полей
5. редактируем страницу регистрации Register.cshtml в зависимости от нужных полей
6. В AccountController.cs редактируем асинхронную функцию Register например так try { // Verification. if (ModelState.IsValid) { // Initialization. var regInfo = this.DBTest.Insert_User(model.UserName, model.Password,model.NameSurname).ToList(); // Verification. if (regInfo!= null && Convert.ToInt32(regInfo[0])!=-1) { //SAVING CHANGES TO DATABASE DBTest.SaveChanges(); // return RedirectToAction("Index", "Home"); return RedirectToAction("Login", "Account");
} else { ModelState.AddModelError(string.Empty, "ПОЛЬЗОВАТЕЛЬ С ТАКИМ ИМЕНЕМ (E-MAIL) УЖЕ СУЩЕСТВУЕТ."); } } } catch (Exception ex) { }
return this.View(model);
Авторизация
1. ХП на проверку логина\пароля из базы (имя ХП можете дать ЛЮБОЕ)
CREATE PROCEDURE [dbo].[LoginByUsernamePassword] @username varchar(50), @password varchar(50) AS BEGIN SELECT email, UsersASP.password FROM UsersASP WHERE email = @username AND UsersASP.password = @password
END
2. Обновили EDM!
3. В "RouteConfig.cs" в папке "App_Start" поменять routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }); по дефолту будет ВХОД В АКК
4. В "Startup.Auth.cs" app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), LogoutPath = new PathString("/Account/LogOff"), ExpireTimeSpan = TimeSpan.FromMinutes(5.0) });
5. В "Global.asax.cs" добавить в конец метода "Application_Start": AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Name;
6. В "_Layout.cshtml" все страницы-представления убрать под IF @if (User.Identity.IsAuthenticated) { <li>@Html.ActionLink("Home", "Index", "Home")</li> <li>@Html.ActionLink("About", "About", "Home")</li> <li>@Html.ActionLink("Contact", "Contact", "Home")</li> <li>@Html.ActionLink("Buses", "Index", "Buses")</li>} } 7. В "Index.cshtml" под "Views->Home" для класса jumbotron <div class="jumbotron"> <h1>Приветики</h1> <p class="lead">Login from "@User.Identity.Name" Account.</p> </div>
8. В "HomeController.cs" в папке " Controller " оставить только: [Authorize] public class HomeController: Controller { public ActionResult Index() { return View(); } }
|
||||||
Последнее изменение этой страницы: 2019-04-27; просмотров: 216; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.198.21 (0.025 с.) |