WebBrowser  Json 오류 , JQuery 오류 처리하기

 

기본 WebBrowser 대신에 ChromiumWebBrowser  사용해서 오류 없애기

 

CefSharp.Wpf 용 설치

설치하기 비주얼 스튜디오 닫기

프로젝트 구성관리자 지정하기 x86  또는 x64 하나만 지정해야됨

안하면 아래와 같이 뜸

아래와 같이 입력함

xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
   <cefSharp:ChromiumWebBrowser Grid.Row="0"
        Address="http://www.daum.net" />

전체소스

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"

        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <cefSharp:ChromiumWebBrowser Grid.Row="0"
        Address="http://www.daum.net" />
    </Grid>
</Window>

 

 

 

참고사이트

https://www.codeproject.com/Articles/881315/Display-HTML-in-WPF-and-CefSharp-Tutorial-Part

Jquery dialog , Confirm callBack 받기

 

<html>
<head>
<script src="./Script/jquery-3.3.1.js"></script>
<script src="./Script/jquery-ui.min.js"></script>

<link rel="stylesheet" type="text/css" href="./Content/diagram.css">
<link rel="stylesheet" type="text/css" href="./Content/jquery-ui.min.css"> 
<link rel="stylesheet" type="text/css" href="./Content/jquery-ui.theme.min.css"> 
<script>
var bot ={};
var messageDialog;
$(document).ready(function(){

    bot.windows ={
        alert : function(msg){
            alert(msg);
        },
        confirm : function(msgCallBack){
            //confirm("test");

            $("#msgInfo").dialog({
                            autoOpen: false,
                            height: 200,
                            width: 350,
                            modal: true,

                            buttons: {
                                Ok: function () {
                                    msgCallBack('OK');
                                    $(this).dialog("close");
                                },
                                Cancel: function () {
                                    msgCallBack('CANCEL');
                                    $(this).dialog("close");
                                }
                            }
                        });

                        $("#msgInfo").dialog("open");
        }
   }

   //요렇게 써도됨
   messageDialog  = function(msgCallBack){  
                        $("#msgInfo").dialog({
                            autoOpen: false,
                            height: 200,
                            width: 350,
                            modal: true,

                            buttons: {
                                Ok: function () {
                                    msgCallBack('OK');
                                    $(this).dialog("close");
                                },
                                Cancel: function () {
                                    msgCallBack('CANCEL');
                                    $(this).dialog("close");
                                }
                            }
                        });

                        $("#msgInfo").dialog("open");

                    }


    test();
});

function test(){

   // 정상실행
   // var result =   bot.windows.confirm("alert test");
   // console.log(result);

    //정상실행
    // messageDialog(  
    //     function msgCallBack( msg){
    //        console.log(msg);
    //     });

    var result =   bot.windows.confirm( 
        function msgCallBack( msg){
            console.log(msg); //여기서 결과값 반환
         });

   }

</script>
</head>

<body>

<input type="button" value="test" onclick="test()">

<div id="msgInfo" title="Confirm">
        <div id="messageText" class="elementText"></div>
</div>
</body>
</html>

 

TFS 에서 소스 다운시 참조 오류 ,DLL 참조오류 for (MVC 5)

1.Windows 탐색기에서 프로젝트 packages 폴더삭제.

2.Visual Studio를 열고 도구 > 라이브러리 패키지 관리자 > 패키지 관리자 설정 으로 이동하고 왼쪽의 패키지 관리자 항목 아래에 "패키지 캐시 지우기"버튼이 있습니다. 이 버튼을 클릭하고 "NuGet에서 빌드 중 누락 된 패키지 다운로드 허용"확인란을 선택했는지 확인

 

 

3.솔루션 정리

4.솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 복원을 활성화하십시오.

 

5.Visual Studio를 다시 시작.

@@IDENTITY 마지막으로 삽입된 ID 값 가져오기

https://docs.microsoft.com/ko-kr/sql/t-sql/functions/identity-transact-sql?view=sql-server-2017

 

@@IDENTITY(Transact-SQL) - SQL Server

@@IDENTITY (Transact-SQL)@@IDENTITY (Transact-SQL) 이 문서의 내용 --> 적용 대상: SQL Server Azure SQL Database Azure SQL Data Warehouse 병렬 데이터 웨어하우스 APPLIES TO: SQL Server Azure SQL Database Azure SQL Data Warehouse Parallel Data Warehouse 마지막으로 삽입된 ID 값을 반환하는 시스템 함

docs.microsoft.com

같은 키값으로 동시에 두개 넣기

--자동증감 키
INSERT INTO TB_TEST1(VAL) VALUES('INSERT'); -- KEY IDX

SET @idx = @@IDENTITY


SET IDENTITY_INSERT TB_TEST2 ON;
 
INSERT INTO TB_TEST2(IDX, VAL)
	 VALUES (@idx, 'INSERT');
 
SET IDENTITY_INSERT TB_TEST2 OFF;

https://docs.microsoft.com/ko-kr/nuget/tools/package-manager-ui

c#에서 Json 파싱하기

NuGet 패키지 를 통해서 설치하기

 

설치 하 고 Visual Studio에서 NuGet 패키지 관리

Visual Studio에서 NuGet 패키지 관리자 UI를 사용 하 여 NuGet 패키지 사용에 대 한 지침입니다.

docs.microsoft.com

비주얼 스튜디오에서  Nuget 패키지 관리자 실행

Json.NET

Serialize JSON

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };

string json = JsonConvert.SerializeObject(product);
// {
//   "Name": "Apple",
//   "Expiry": "2008-12-28T00:00:00",
//   "Sizes": [
//     "Small"
//   ]
// }

Deserialize JSON

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys

LINQ to JSON

JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000, 5, 23));

JObject o = new JObject();
o["MyArray"] = array;

string json = o.ToString();
// {
//   "MyArray": [
//     "Manual text",
//     "2000-05-23T00:00:00"
//   ]
// }

파싱예제

아래와 같은 JSON 형태

"class": "go.GraphLinksModel",
  "linkKeyProperty": "stepId",
  "modelData": {"position":"-5 -5"},
  "nodeDataArray": [ 
{"key":11, "category":"start", "text":"Start", "loc":"288 109"},
{"key":101, "category":"message", "text":"Message", "items":[ {"name":"Name", "value":"Message"},{"name":"Type", "value":"Step"},{"name":"Category", "value":"대분류"},{"name":"Size", "value":"120"},{"name":"Max Length", "value":"20"} ], "loc":"292 181"}
 ],
  "linkDataArray": [ {"from":11, "to":101, "stepId":-1, "items":[ {"name":"link", "value":"value1"},{"name":"propery1", "value":"value1"} ], "points":[288,129.5,288,139.5,288,147.1257080078125,292,147.1257080078125,292,154.751416015625,292,164.751416015625]} 

        private void Form1_Load(object sender, EventArgs e)
        {
            string s = this.textBox1.Text;
            //var m = JsonConvert.DeserializeObject<Dictionary<string, object>>(s);
            //if (m.TryGetValue("nodeDataArray", out result))
            //{
            //    var ss = result;
            //}
            //object result = "";

            JObject jo = JObject.Parse(s);
            var a = jo.SelectToken("nodeDataArray");
            var cnt = a.Count();
            foreach (var item in a)
            {
                var key = item.SelectToken("key").ToString();
                var category = item.SelectToken("category").ToString();
                var text = item.SelectToken("text").ToString();
                var items = item.SelectToken("items");

                if(items != null)
                {
                    foreach (var token in items)
                    {
                        var name = String.Format("{0}", token.SelectToken("name"));
                        var value = String.Format("{0}", token.SelectToken("value"));
                    }
                }
            }

        }

 

프로시저에서 두개의 값을 저장하기 위해 

같은 키값을 넣기 위해 저장할수 있다.

	INSERT INTO TB_A (ProjectName) VALUES (@pProjectName)
	SET @oId = @@IDENTITY
    
	--key(Id)를 값 저장하기 위해 IDENTITY_INSERT ON
	SET IDENTITY_INSERT TB_B ON
	INSERT INTO TB_B (Id ,ProjectName) VALUES (@oId ,@pProjectName)
	SET IDENTITY_INSERT TB_B OFF 

 

Global.asax
순서를 변경해서 맨밑에다가 두니 인식 못했음 ㅡㅡ
protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

           //GlobalConfiguration.Configure(WebApiConfig.Register);  여기다 두니 인식 못함
        }

WebApiConfig.cs 추가

ValuesController.cs 컨트롤러 추가

public class ValuesController : ApiController 
    { 
        // GET api/ 
        public IEnumerable Get() 
        { 
            return new string[] { "value1", "value2" }; 
        } 

        // GET api//5 
        public string Get(int id) 
        { 
            return "value"; 
        } 

        // POST api/ 
        public void Post([FromBody]string value) 
        { 
        } 

        // PUT api//5 
        public void Put(int id, [FromBody]string value) 
        { 
        } 

        // DELETE api//5 
        public void Delete(int id) 
        { 
        } 
    }

 

호출하기

    <script type="text/javascript">
        $(document).ready(function () {
            // AJAX 요청을 전송한다.
            $.getJSON("/api/values",
                function (data) {
                    // 요청이 성공하면, 'data' 변수에 제품들의 목록이 담긴다.
                    $.each(data, function (key, val) {

                        // 텍스트 출력을 위해 형식을 바꾼다.
                        var str = val.Name + ': $' + val.Price;

                        // 각 제품에 대한 목록 항목을 추가한다.
                        //$('<li/>', { text: str })
                        //    .appendTo($('#products'));
                    });
                });
        });
    </script>

 

+ Recent posts