ওয়েবফোর্ম আনব্রাস্ট্রিসিভালিডেশনমোডের 'jquery' এর জন্য একটি স্ক্রিপ্ট রিসোর্স ম্যাপিং দরকার। অনুগ্রহ করে স্ক্রিপ্টআরসোর্স ম্যাপিং নামক jquery যুক্ত করুন (কেস-সংবেদনশীল)


305

আমি ভিজ্যুয়াল স্টুডিও 2012 ব্যবহার করে একটি ওয়েব অ্যাপ্লিকেশন তৈরি করছি I'm আমি আমার পাঠ্যবক্সে শব্দ গণনা যুক্ত করার চেষ্টা করছি। তবে জাভাস্ক্রিপ্ট কোড এবং এইচটিএমএল কোড যুক্ত করার পরে। উপরে বর্ণিত হিসাবে আমি ত্রুটিটি গ্রহণ করি।

এখানে আমার জাভাস্ক্রিপ্ট কোডড

কোড:

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>

এএসপিএক্স কোড, (এইচটিএমএল কোড)

<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>

উত্তর:


576

প্রাক 4.5 বৈধতা মোড সক্ষম করতে আপনার একটি ওয়েবকনফিগ কী দরকার।

বৈধকরণ সেটিংসের উপর আরও তথ্য : আনব্র্ট্রসিভভ্যালিডেশন মোড :

ASP.NET কীভাবে ক্লায়েন্ট-সাইড বৈধতা যুক্তির জন্য নিরবচ্ছিন্ন জাভাস্ক্রিপ্ট ব্যবহার করতে বিল্ট-ইন বৈধকরণকারী নিয়ন্ত্রণগুলিকে বিশ্বব্যাপী সক্ষম করে তা সুনির্দিষ্ট করে।

প্রকার: UnobtrusiveValidationMode

ডিফল্ট মান: কিছুই নয়

মন্তব্যসমূহ: যদি এই মূল মানটি "কিছুই নয়" [ডিফল্ট] তে সেট করা থাকে তবে এএসপি.এনইটি অ্যাপ্লিকেশন ক্লায়েন্ট-পার্শ্বের বৈধতা যুক্তির জন্য প্রাক -৫.৫ আচরণ (জাভাস্ক্রিপ্টের ইনলাইন পৃষ্ঠাগুলিতে) ব্যবহার করবে। এই কী মান হিসাবে সেট করা থাকে "ওয়েবফর্মগুলি" , ASP.NET ব্যবহার HTML5 এর ডেটা-গুণাবলী এবং প্রয়াত একটি যোগ স্ক্রিপ্ট উল্লেখ থেকে জাভাস্ক্রিপ্ট আবদ্ধ ক্লায়েন্ট-সাইড বৈধতা যুক্তিবিজ্ঞান জন্য।

উদাহরণ:

    <appSettings>
      <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
    </appSettings>

14
কেন এটি এমনকি একটি সমস্যা ... কেন এটি কেবল ডিফল্টরূপে অক্ষম করা যায়নি? এই যে কোনও উপায়ে সক্ষম হওয়া চাইবে কে? উত্তর যাই হোক না কেন, আমি এই কীটি যুক্ত করেছি এবং আমি এখনও ত্রুটিটি
পাচ্ছি

40
মনে হচ্ছে " ব্যবহার করা হয় না " কোনওটিই ডিফল্ট নয়targetFramework="4.5" । এটির কাজ করার জন্য আমাকে এই ওয়েব সেটিংটি স্পষ্টভাবে যুক্ত করতে হয়েছিল।
জেসি ওয়েব

18
অনুস্মারক: ওয়েবে <অ্যাপসেটেটিংস> পিতামাতার on কনফিগ ফাইলে মূল উপাদান হওয়া উচিত, সেটি <কনফিগারেশন>।
GY

4
আমি ইনস্টল। নেট .৪.২.২ এবং তারপরে আমি এই সমস্যার মধ্যে পড়েছি। আমি ধরে নিলাম উইন্ডোজ আপডেটটি 4.5.2 এর জন্য মেশিনের কনফিগারেশনে পরিবর্তন হয়েছে।
রেজ.নেট

3
আপনি "বৃহত্তম পৃষ্ঠার আকার" প্রতিযোগিতা জিততে না চাইলে আপনি কেন আপত্তিজনক বৈধতা অক্ষম করবেন?
EKW

173

নতুন বৈশিষ্ট্যটি অক্ষম করার পরিবর্তে আমি ত্রুটির নির্দেশাবলী অনুসরণ করতে পছন্দ করেছি। আমার 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"
    });
}

এটি একটি এমএসডিএন ব্লগ পোস্ট থেকে এসেছে যা স্ক্রিপ্ট রিসোর্স ম্যাপিংয়ের কিছু সুবিধা হাইলাইট করে। আমার কাছে বিশেষ আগ্রহের বিষয়টি ছিল "ডিবাগ = ট্রু", সক্ষম সিডিএন ইত্যাদির উপর ভিত্তি করে স্ক্রিপ্ট ফাইলগুলি সরবরাহের উপর নিয়ন্ত্রণ নিয়ন্ত্রণ ছিল etc.


@b_levitt আমি .NET- এ এক নতুন দয়াবান এবং আপনি উল্লিখিত সমাধানের মধ্য দিয়ে এসেছি। এটি প্রকৃতপক্ষে অনেক সাহায্য করেছে তবে কৌতূহল কীভাবে আমি jQuery ফাংশনটি কল করতে পারি। উদাহরণস্বরূপ, আমার একটি jQuery মেনু রয়েছে এবং উপরের পদ্ধতিটি ব্যবহার করার পরে আমি ব্যবহার করছি <script type='text/javascript'> //<![CDATA[ $(document).ready(function () { $("#menu").menu(); }) //]] </script>। এটাই কি সঠিক পন্থা?
যশ্মান গুপ্ত

8
একটি টুকরো তৈরি করেছেন: gist.github.com/monoman/ca42e54cdac25ef2284b jQueryVer মান হার্ডকডিং না করে উন্নতি করেছে;
মনোমন

6
দ্রষ্টব্য: আমি এই দুটি নিউট প্যাকেজ যুক্ত করেছি এবং জিনিসগুলি মসৃণ হয়েছে went উৎপাদন সার্ভারে ইন / bin ফোল্ডারে নতুন ফাইল কপি করতে হয়েছে .. nuget.org/packages/Microsoft.AspNet.Web.Optimization nuget.org/packages/AspNet.ScriptManager.jQuery
htm11h

1
কোনটি সঠিক তা আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে। আমাদের অ্যাপ্লিকেশনটির যা যা আছে তার কোনও বৈধতা নেই (খাঁটি সামগ্রী বিতরণ) এবং আমরা এটিকে সমস্ত কিছু বন্ধ করে দেওয়া পছন্দ করি।
সামান্থা ব্রানহাম

93

ক্লায়েন্ট-পাশের বৈধতার জন্য অব্যক্ত জাভাস্ক্রিপ্টের ব্যবহার নিষ্ক্রিয় করার জন্য কমপক্ষে তিনটি উপায় রয়েছে:

  1. ওয়েবকনফিগ ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:
    <configuration>
      <appSettings>
        <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
      </appSettings>
    </configuration>
  2. System.Web.UI.ValidationSettings.UnobtrusiveValidationModeস্থির সম্পত্তিটির মান সেট করুনSystem.Web.UI.UnobtrusiveValidationMode.None
  3. System.Web.UI.Page.UnobtrusiveValidationModeউদাহরণ বৈশিষ্ট্যের মানটি এতে সেট করুনSystem.Web.UI.UnobtrusiveValidationMode.None

প্রতি পৃষ্ঠার ভিত্তিতে কার্যকারিতা অক্ষম করতে, Page.UnobtrusiveValidationModeপৃষ্ঠা পৃষ্ঠাটি ব্যবহার করে সম্পত্তি সেট করতে আমি পছন্দ করি :

<%@ Page Language="C#" UnobtrusiveValidationMode="None" %>

7
প্রতি পৃষ্ঠার সেটিংটিতে দুর্দান্ত কল।
ব্রেন্ডন হ্যানিম্যান 20

47

আপত্তিজনক বৈধতা ASP.NET এর নতুন সংস্করণে ডিফল্টরূপে সক্ষম করা হয়েছে। অবিচ্ছিন্ন বৈধতা jQuery ব্যবহার করে এমন একটি ছোট জাভাস্ক্রিপ্ট লাইব্রেরি সহ বৈধতা যাচাই করার জন্য ইনলাইন জাভাস্ক্রিপ্ট প্রতিস্থাপন করে পৃষ্ঠার আকার হ্রাস করা।

নিম্নলিখিতগুলি অন্তর্ভুক্ত করতে আপনি ওয়েবকনফিগ সম্পাদনা করে এটি অক্ষম করতে পারেন:

<appSettings>
  <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

বা আরও ভাল এখনও গ্লোবাল.এক্সে অ্যাপ্লিকেশন_সার্ট পদ্ধতিটি সংশোধন করে এটি সঠিকভাবে কনফিগার করেছেন:

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"
        }
    );
}

সি # এবং ভিবিতে এএসপি.নেট 4.5.1.1 এর বিগেনির পৃষ্ঠা 399 বিবাদী বৈধতার সুবিধা এবং এটি কনফিগার করার জন্য একটি ওয়াকথ্রো সম্পর্কিত আলোচনা সরবরাহ করে।

যারা রুটকনফিগ খুঁজছেন তাদের জন্য। আপনি 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);
        }
    }
}

রাউটকনফিগ কোথা থেকে আসে?
লুকাস

@ লুকাস যখন আপনি ভিজ্যুয়াল স্টুডিও সহ একটি নতুন প্রকল্প তৈরি করেন এটি অ্যাপ_কোড ফোল্ডারে রাউটকনফিগ.সি.কে যুক্ত করে। সম্পাদিত উত্তর দেখুন।
ডেনভার

12

গ্লোবাল.এক্সএক্সে ... বি_ভিত্তিক থেকে উত্তরটিতে আরও কিছু যোগ করতে:

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"
            });
        }
    }
}

আপনার ডিফল্ট.এএসপিএক্স এ

<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>

12

আমি বিশ্বাস করি আমি একই বিবাদের মুখোমুখি হয়েছি। আমি যখন পরিবর্তিত হয়েছি তখন আমি সমস্যার মুখোমুখি হতে শুরু করেছি:

</system.web>
<httpRuntime targetFramework="4.5"/>

যা আপনার উপরে বর্ণিত ত্রুটি বার্তা দেয়।

যোগ:

<appSettings>
  <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />

সমস্যার সমাধান করে তবে এটি আপনার বৈধতা নিয়ন্ত্রণ / স্ক্রিপ্টগুলিকে জাভাস্ক্রিপ্ট রানটাইম ত্রুটি ছুঁড়ে দেয়। আপনি যদি এতে পরিবর্তন করেন:

</system.web>
<httpRuntime targetFramework="4.0"/>

আপনার ঠিক থাকা উচিত, তবে আপনাকে নিশ্চিত করতে হবে যে আপনার বাকী কোডটি পছন্দসইভাবে আচরণ করে / আচরণ করে। আপনাকে কিছু নতুন বৈশিষ্ট্যও এড়িয়ে যেতে হতে পারে যা কেবলমাত্র 4.5 পরে পাওয়া যায়।

পিএস এই প্রস্তাবটি কার্যকর করার আগে আপনি নিম্নলিখিতটি পড়ার জন্য অত্যন্ত পরামর্শ দেওয়া হচ্ছে। বিশেষত, আপনি যদি অ্যাসিঙ্ক কার্যকারিতা ব্যবহার করেন:

https://blogs.msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/

আপডেট এপ্রিল 2017: কিছু পরীক্ষা-নিরীক্ষা ও পরীক্ষার পরে আমি এমন একটি সমন্বয় নিয়ে এসেছি যা কাজ করে:

<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
<httpRuntime targetFramework="4.5.1" />

সঙ্গে:

jQuery সংস্করণ 1.11.3


6

নিয়ন্ত্রণ বৈধকারীর কারণে সমস্যা দেখা দিয়েছে। নিম্নলিখিত হিসাবে কেবলমাত্র আপনার ওয়েব পৃষ্ঠায় জে কোয়েরি রেফারেন্স যুক্ত করুন এবং তারপরে সমস্যাটি কাটিয়ে উঠতে আপনার ওয়েব কোডফাইগ ফাইলে বৈধতা সেটিংস যুক্ত করুন। আমিও একই সমস্যার মুখোমুখি হয়েছি এবং নীচে আমার সমস্যার সমাধান দিয়েছে।

ধাপ 1:

ওয়েব পৃষ্ঠায় যুক্ত করার কোড

ধাপ ২ :

Web.config ফাইলে কোড যুক্ত করা হবে

এটি আপনার সমস্যার সমাধান করবে।


UnobtrusiveValidationMode কারও মধ্যে সেট করার পরে আপনি কেন Jquery যুক্ত করবেন?
আশিন

0

এটির 3 টি সমাধান রয়েছে যা অন্যান্য ছেলেরা উচ্চতর বলেছিল ... তবে যখন অ্যাপ্লিকেশন_সার্ট সমাধানটি চেষ্টা করবেন তখন পিকআপ_ডেট_এন্ডটাইমের মতো আমার অন্যান্য jQuery লাইব্রেরিটি কাজ করে না ... সুতরাং আমি দ্বিতীয় উপায়ে পরীক্ষা করি এবং এর উত্তর দেওয়া হয়: 1- টার্গেট ফ্রেম ওয়ার্ককে পূর্ববর্তী 4.5 এ সেট করুন 2 - আপনার পৃষ্ঠার শিরোনামে "UnobtrusiveValidationMode =" কিছুই নয় "" ব্যবহার করুন =>

<%@ Page Title="" Language="C#" 
    MasterPageFile="~/Master/MasteOfHotel.Master" 
    UnobtrusiveValidationMode="None" %>

এটি আমার পক্ষে কাজ করে এবং আমার অন্যান্য jQuery ফাংশনকে ব্যাহত করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.