Visual Studio 2012๋ฅผ ์ฌ์ฉํ์ฌ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์์ต๋๋ค. ํ ์คํธ ์์์ ๋จ์ด ์๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋ฐ ์คํฌ๋ฆฝํธ ์ฝ๋์ HTML ์ฝ๋๋ฅผ ์ถ๊ฐ ํ ํ. ์์์ ์ค๋ช ํ๋๋ก ์ค๋ฅ๊ฐ ๋ํ๋ฉ๋๋ค.
์ฌ๊ธฐ ๋ด ์๋ฐ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ๋ฉ๋์ด ์์ต๋๋ค.
์ฝ๋ :
function validateLimit(obj, divID, maxchar) {
objDiv = get_object(divID);
if (this.id) obj = this;
var remaningChar = maxchar - trimEnter(obj.value).length;
if (objDiv.id) {
objDiv.innerHTML = remaningChar + " characters left";
}
if (remaningChar <= 0) {
obj.value = obj.value.substring(maxchar, 0);
if (objDiv.id) {
objDiv.innerHTML = "0 characters left";
}
return false;
}
else
{ return true; }
}
function get_object(id) {
var object = null;
if (document.layers) {
object = document.layers[id];
} else if (document.all) {
object = document.all[id];
} else if (document.getElementById) {
object = document.getElementById(id);
}
return object;
}
function trimEnter(dataStr) {
return dataStr.replace(/(\r\n|\r|\n)/g, "");
}
๋ง์คํฐ ํ์ด์ง์ ์๋ฒ ์ฝ๋
<script type="text/javascript" src="js/JScript.js" ></script>
ASPX ์ฝ๋, (HTML ์ฝ๋)
<tr>
<th style="width: 595px; height: 135px;">Official Report :</th>
<td colspan="4" style="height: 135px">
<asp:TextBox ID="tbofficial" runat="server" Height="121px" TextMode="MultiLine" Width="878px" MaxLength="500" ToolTip="Summary:(500 characters)" onkeyup="return validateLimit(this, 'lblMsg1', 500)" ></asp:TextBox>
<div id="lblMsg1">500 characters left</div>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="tbofficial" Display="Dynamic"
SetFocusOnError="True">*</asp:RequiredFieldValidator>
<br />
<asp:Label ID="lblmsg" runat="server"></asp:Label>
<br />
<br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
<asp:Button ID="btnClear" runat="server" Text="Clear" OnClick="btnClear_Click" />
</td>
</tr>
๋ต๋ณ
4.5 ์ด์ ์ ํจ์ฑ ๊ฒ์ฌ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ ค๋ฉด web.config ํค๊ฐ ํ์ํฉ๋๋ค.
ValidationSettings : UnobtrusiveValidationMode ์ ๋ํ ์ถ๊ฐ ์ ๋ณด :
ASP.NET์์ ๋ด์ฅ ์ ํจ์ฑ ๊ฒ์ฌ๊ธฐ ์ปจํธ๋กค์ด ํด๋ผ์ด์ธํธ ์ชฝ ์ ํจ์ฑ ๊ฒ์ฌ ๋ ผ๋ฆฌ์ ๋์ ๋์ง ์๋ JavaScript๋ฅผ ์ฌ์ฉํ๋๋ก ์ ์ญ ์ ์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค.
์ ํ : ๋์ ๋์ง ์๋ ๊ฒ์ฆ ๋ชจ๋
๊ธฐ๋ณธ๊ฐ : ์์
์ค๋ช :์ด ํค ๊ฐ์ โ์์โ [๊ธฐ๋ณธ๊ฐ]์ผ๋ก ์ค์ ํ๋ฉด ASP.NET ์์ฉ ํ๋ก๊ทธ๋จ์ ํด๋ผ์ด์ธํธ ์ชฝ ์ ํจ์ฑ ๊ฒ์ฌ ๋ ผ๋ฆฌ์ 4.5 ์ด์ ๋์ (ํ์ด์ง์ JavaScript ์ธ๋ผ์ธ)์ ์ฌ์ฉํฉ๋๋ค. ์ด ํค ๊ฐ์ โWebFormsโ๋ก ์ค์ ํ๋ฉด ASP.NET์ ํด๋ผ์ด์ธํธ ์ธก ์ ํจ์ฑ ๊ฒ์ฌ ๋ ผ๋ฆฌ๋ฅผ ์ํด ์ถ๊ฐ ๋ ์คํฌ๋ฆฝํธ ์ฐธ์กฐ์ HTML5 ๋ฐ์ดํฐ ํน์ฑ ๋ฐ ๋ฆ๊ฒ ๋ฐ์ธ๋ฉ ๋ JavaScript๋ฅผ ์ฌ์ฉํฉ๋๋ค .
์:
<appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> </appSettings>
๋ต๋ณ
์๋ก์ด ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ ๋์ ์ค๋ฅ ์ง์นจ์ ๋ฐ๋ฅด๋๋ก ์ ํํ์ต๋๋ค. ๋ด global.asax.cs์ ๋ค์์ ์ถ๊ฐํ์ต๋๋ค.
protected void Application_Start(object sender, EventArgs e)
{
string JQueryVer = "1.7.1";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
{
Path = "~/Scripts/jquery-" + JQueryVer + ".min.js",
DebugPath = "~/Scripts/jquery-" + JQueryVer + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}
์ด๊ฒ์ ์คํฌ๋ฆฝํธ ๋ฆฌ์์ค ๋งคํ์ ์ฅ์ ์ค ์ผ๋ถ๋ฅผ ๊ฐ์กฐ ํ๋ msdn ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์์ ๋น๋กฏ๋ ๊ฒ์ ๋๋ค. โdebug = trueโ, EnableCDN ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๋ฌ์ ์ค์ ์ง์ค์์ผ๋ก ์ ์ดํ๋ โโ๊ฒ์ด ํนํ ์ค์ํ์ต๋๋ค.
๋ต๋ณ
ํด๋ผ์ด์ธํธ ์ธก ์ ํจ์ฑ ๊ฒ์ฆ์ ์ํด ๋ฐฉํด๋ฐ์ง ์๋ JavaScript๋ฅผ ์ฌ์ฉํ์ง ์๋๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์๋ ์ต์ํ ์ธ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- web.config ํ์ผ์ ๋ค์์ ์ถ๊ฐํ์ญ์์ค.
<configuration> <appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> </appSettings> </configuration>
System.Web.UI.ValidationSettings.UnobtrusiveValidationMode
์ ์ ์์ฑ ๊ฐ ์System.Web.UI.UnobtrusiveValidationMode.None
System.Web.UI.Page.UnobtrusiveValidationMode
์ธ์คํด์ค ์์ฑ ๊ฐ ์System.Web.UI.UnobtrusiveValidationMode.None
ํ์ด์ง๋ณ๋ก ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ ค๋ฉด Page.UnobtrusiveValidationMode
page ์ง์๋ฌธ์ ์ฌ์ฉํ์ฌ ์์ฑ ์ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
<%@ Page Language="C#" UnobtrusiveValidationMode="None" %>
๋ต๋ณ
์๋ก์ด ๋ฒ์ ์ ASP.NET์์๋ ๋์ ๋์ง ์๋ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋์ ๋์ง ์๋ ์ ํจ์ฑ ๊ฒ์ฌ๋ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด ์ธ๋ผ์ธ JavaScript๋ฅผ jQuery๋ฅผ ์ฌ์ฉํ๋ ์์ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋์ฒดํ์ฌ ํ์ด์ง ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์ ๋ชฉํ๋กํฉ๋๋ค.
๋ค์์ ํฌํจํ๋๋ก web.config๋ฅผ ํธ์งํ์ฌ ๋นํ์ฑํ ํ ์ ์์ต๋๋ค.
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
๋๋ global.asax์์ Application_Start ๋ฉ์๋๋ฅผ ์์ ํ์ฌ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑํ์ญ์์ค.
void Application_Start(object sender, EventArgs e)
{
RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);
ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
new ScriptResourceDefinition
{
Path = "/~Scripts/jquery-2.1.1.min.js"
}
);
}
C # ๋ฐ VB์ ASP.NET 4.5.1 ์์ ํ์ด์ง 397์์๋ ๋์ ๊ฑฐ์ฌ๋ฆฌ์ง ์๋ ์ ํจ์ฑ ๊ฒ์ฌ์ ์ด์ ๊ณผ์ด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
RouteConfig๋ฅผ ์ฐพ๋ ์ฌ๋๋ค์ ์ํด. Visual Studio์์ App_Code ํด๋์ ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ฉด ์๋์ผ๋ก ์ถ๊ฐ๋ฉ๋๋ค. ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Routing;
using Microsoft.AspNet.FriendlyUrls;
namespace @default
{
public static class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}
}
}
๋ต๋ณ
global.asax์ b_levitt โฆ์ ๋ต๋ณ์ ์กฐ๊ธ ๋ ์ถ๊ฐํ๋ ค๋ฉด :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI;
namespace LoginPage
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
string JQueryVer = "1.11.3";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
{
Path = "~/js/jquery-" + JQueryVer + ".min.js",
DebugPath = "~/js/jquery-" + JQueryVer + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}
}
}
default.aspx์์
<body>
<form id="UserSectionForm" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server">
<Scripts>
<asp:ScriptReference Name="jquery" />
</Scripts>
</asp:ScriptManager>
<%--rest of your markup goes here--%>
</form>
</body>
๋ต๋ณ
๋๋ ๊ฐ์ quandary๋ฅผ ๋ง๋ฌ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์์ผ๋ก ๋ณ๊ฒฝํ์ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
</system.web>
<httpRuntime targetFramework="4.5"/>
์์์ ์ค๋ช ํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ฒจ๊ฐ:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ์ง๋ง ์ ํจ์ฑ ๊ฒ์ฌ ์ปจํธ๋กค / ์คํฌ๋ฆฝํธ์์ Javascript ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ค์์ผ๋ก ๋ณ๊ฒฝํ๋ฉด
</system.web>
<httpRuntime targetFramework="4.0"/>
๊ด์ฐฎ์ ์ผ ํ์ง๋ง ๋๋จธ์ง ์ฝ๋๊ฐ ์ํ๋๋๋ก ์๋ํ๋์ง ํ์ธํด์ผํฉ๋๋ค. 4.5 ์ด์์์๋ง ์ฌ์ฉํ ์์๋ ์ผ๋ถ ์๋ก์ด ๊ธฐ๋ฅ์ ํฌ๊ธฐํด์ผ ํ ์๋ ์์ต๋๋ค.
PS์ด ์๋ฃจ์ ์ ๊ตฌํํ๊ธฐ ์ ์ ๋ค์์ ์ฝ์ด ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. ํนํ ๋น๋๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ :
https://blogs.msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/
2017 ๋
4 ์ ์
๋ฐ์ดํธ :
๋ช ๊ฐ์ง ์คํ๊ณผ ํ
์คํธ๋ฅผ ๊ฑฐ์น ํ ์๋ํ๋ ์กฐํฉ์ ์๊ฐํด ๋์ต๋๋ค.
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
<httpRuntime targetFramework="4.5.1" />
์:
jQuery ๋ฒ์ 1.11.3
๋ต๋ณ
์ ์ด ์ ํจ์ฑ ๊ฒ์ฆ๊ธฐ๋ก ์ธํด ๋ฌธ์ ์ ์ด ๋ฐ์ํ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์น ํ์ด์ง์ J Query ์ฐธ์กฐ๋ฅผ ์ถ๊ฐ ํ ๋ค์ web.config ํ์ผ์ ์ ํจ์ฑ ๊ฒ์ฆ ์ค์ ์ ์ถ๊ฐํ์ฌ ๋ฌธ์ ์ ์ ๊ทน๋ณตํ์ญ์์ค. ๋๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์๋๋ ๋ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ฃผ์๋ค.
1 ๋จ๊ณ:
2 ๋จ๊ณ :
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.