Visual Studio 2017 ASP.NET MVC 코드를 처음 사용하는 모델에 추가 기능

ASP.NET에서 MVC 코드를 통해 모델을 우선 개조합니다.
마지막으로 이동된 항목에 보기(화면)가 추가되었습니다.
보기에 표시할 수 있는 것만 했기 때문에 논리적인 것을 프로젝트에 추가합니다.
내용이 특별히 코드 우선 기능에 대한 것은 아니지만 지난번 화면은 참조 시스템이어서 어쩔 수 없었다.코드 우선 항목 중 DB와 관계가 없는 모델도 사용할 수 있습니까?이런 데서 시작했으니까.
참고한 두 문장을 보지 않으면 대화 내용을 전달할 수 없다.미안합니다. 1회가 끝난 것이 아닙니다.
이번에도 ASP야.NET의 기능 동작부터 시도해보고 싶은 방법으로 만든 샘플용 비즈니스 논리다.
이걸 보고 뭔가 하고 싶었으면 좋겠어.

참고 자료


MVC로 코드 우선 프로젝트 기사 만들기
Visual Studio 2017 ASP.NET MVC 코드 첫 번째 프로젝트 제작
MVC로 화면을 제작한 기사입니다.
Visual Studio 2017 ASP.화면을 처음 만들어 봤어요.

컨디션


Windows 10 Home 64bit
Visual Studio 2017 Community C#
.NET 4.6.1
EntityFramework 6.2.0

이번에 만든 거.


마지막 컨트롤러의 처리를 모델로 이동합니다.
모델에 새 기능을 추가합니다.
보기든 컨트롤러든 논리를 넣을 수 있기 때문에 이상은 물론이고 같은 프로젝트에서 통일적으로 제작하면 비교적 쉽게 볼 수 있다.
보기 쉬운 것은 장애 예방과 노출 후 조사에 도움이 된다.
비즈니스 논리를 추가하는 모델은 마지막 화면에서 DB에 저장되지 않은 모델을 사용합니다.

프로그램 만들기


컨트롤러 처리 이사



수정 전의 컨트롤러.

수정 전 모델입니다.

수정된 컨트롤러.
BooksController.cs
        public ActionResult Disp()
        {
            ToteBag bag = new ToteBag();

            bag.MakeDispData(db);

            return View(bag);
        }
한 줄이 되다.

수정된 모델입니다.
ToteBag.cs
    public class ToteBag
    {
        public string DispData { get; set; }

        public void MakeDispData(BookModel db)
        {
            var aa = from dd in db.Books
                     orderby dd.Id descending
                     select dd;

            DispData = "ToteBag:";
            DispData += "<br />";
            foreach (var dd in aa)
            {
                DispData += dd.Id;
                DispData += "<br />";
                DispData += dd.Name;
                DispData += "<br />";
                DispData += dd.Memo;
                DispData += "<br />";
                DispData += dd.Memo2;
            }

        }
    }
MakeDispData를 추가하여 디렉터에서 호출하도록 변경합니다.
MakeDispData를 실행함으로써 모델의 데이터가 이러한 인상을 완성했다.

동작 확인



시작 페이지가 지정되지 않았기 때문에 Disp.cshtml 실행을 열어 주십시오.
결과는 지난번과 같다.이사를 마치다.

새로운 기능 추가


모형의 제작 기능이 완성되었기 때문에 보기에서 호출된 기능을 제작한다.
마지막으로 화면을 만들 때 사용한 @Html입니다.Raw, @Html에 신경 쓰세요.Raw를 사용하여 논의합니다.
필요한 기능이 아니라 하고 싶은 기능이다.

ToteBag.cs
    public class ToteBag
    {
        public string DispData { get; set; }

        public void MakeDispData(BookModel db)
        {
            var aa = from dd in db.Books
                     orderby dd.Id descending
                     select dd;

            DispData = "ToteBag:";
            DispData += "<br />";
            foreach (var dd in aa)
            {
                DispData += dd.Id;
                DispData += "<br />";
                DispData += dd.Name;
                DispData += "<br />";
                DispData += dd.Memo;
                DispData += "<br />";
                DispData += dd.Memo2;
            }

        }

        public string MakeLinkAndLF(string htmlData)
        {
            string wkData = "";

            string RegexPattern = "";

            wkData = htmlData;

            //全角の前まで取得。Google先生用に";","_","+"を追加。
            RegexPattern = @"http(s)?://([\w-]+\.)+[\w-]+(/[a-zA-Z0-9-./?%&=;_+]*)?";
            wkData = Regex.Replace(wkData, RegexPattern, "<a href=\"$0\">$0</a>");

            RegexPattern = @"\r\n";
            wkData = Regex.Replace(wkData, RegexPattern, "<br />\r\n");

            return wkData;
        }
    }
MakeLinkAndLF를 추가한 후 뷰에서 호출하도록 변경되었습니다.
MakeLinkAndLF를 실행하여 뷰 디스플레이에서 링크와 줄 바꿈을 지원합니다.
일반적인 URL의 정규 표현 판정 패턴을 살짝 만지작거리고 있다.
전각이 왔을 때 끝났다고 생각했다.
구글 선생님의 검색 결과는 ";"입니다."_","+"가 포함되어 있기 때문에 허용됩니다.

MakeLinkAndLF를 호출하여 DisplayFor의 결과를 당신에게 맡기기로 결정했습니다.DisplayFor의 들여쓰기 문자열을 사용할 수 있습니다.
역시 Raw만으로 화면에 단순히 드러나는 것은 위험하다.
샘플을 줄이기 위해 정규 표현식을 사용했는데 짧지만 힘들었다.

동작 확인



테스트용 데이터.또한 Google 선생님의 검색 결과 URL을 사용하십시오.

Make Link AndLF 가 표시됩니다.
입력 화면과 마찬가지로 줄을 바꾸어 링크를 생성합니다.
이동하면 원본 파일을 표시하고 확인하십시오.

상업 논리를 제정해 보아라


기능은 shobo이지만 모형과 컨트롤러, 보기를 만들었습니다.나는 위에 논리를 넣었다.
MVC라고 할 수 있죠?
이번에 샘플로 만든 메이크링크 앤드엘프는 게시판 같은 걸로 불었을 때 나오는 느낌.게시판을 만들려면 얼마나 더 조사해야 완성할 수 있을까.
아무튼, 다양한 걸 만들어 보세요.

좋은 웹페이지 즐겨찾기