জাভাস্ক্রিপ্ট থেকে এমভিসির মডেল সম্পত্তি অ্যাক্সেস করা


147

আমার নীচের মডেলটি রয়েছে যা আমার ভিউ মডেলটিতে আবৃত

public class FloorPlanSettingsModel
{
    public int Id { get; set; }
    public int? MainFloorPlanId { get; set; }
    public string ImageDirectory { get; set; }
    public string ThumbnailDirectory { get; set; }
    public string IconsDirectory { get; set; }
}

জাভাস্ক্রিপ্ট থেকে উপরের বৈশিষ্ট্যগুলির মধ্যে আমি কীভাবে অ্যাক্সেস করব?

আমি এটি চেষ্টা করেছিলাম, কিন্তু আমি "অপরিবর্তিত" পেয়েছি

var floorplanSettings = "@Model.FloorPlanSettings";
alert(floorplanSettings.IconsDirectory);

5
কেবল স্পষ্ট করে বলতে গেলে, যা হচ্ছে তা আপনি জাভাস্ক্রিপ্ট ভেরিয়েবলের মান সি # ভেরিয়েবল "মডেল। ফ্লোরপ্ল্যানসেটেটিংস" এর মানতে সেট করছেন যা এই শ্রেণীর (একটি স্ট্রিং) .ToString () মান হবে। তারপরে আপনি জাভাস্ক্রিপ্ট স্ট্রিং ভেরিয়েবলটি সবেমাত্র তৈরি করেছেন এমন একটি জাভাস্ক্রিপ্ট সম্পত্তি "আইকনস ডিরেক্টরী" নামে সতর্ক করার চেষ্টা করছেন। আপনি অপরিজ্ঞাত হয়ে গেছেন কারণ একটি জাভাস্ক্রিপ্ট স্ট্রিংয়ের কোনও "আইকনসডাইরেক্টরি" সম্পত্তি নেই।
জোয়েল কোচরান

একটি সম্পূর্ণ পরীক্ষার কেস সরবরাহ করেছে এবং জাভাস্ক্রিপ্ট ভেরিয়েবলকে মডেল ডেটা দেওয়ার সমস্ত পরিস্থিতি ব্যাখ্যা করেছে
রাজশেকার রেড্ডি

এটি ভিউ (সিএসটিএমএল) এর বাইরে কাজ করে না। অর্থাত্ বাহ্যিক .js ফাইলটিতে ভিউ দ্বারা রেফারেন্স করা হয়।
স্পেন্সার সুলিভান

উত্তর:


240

আপনি আপনার পুরো সার্ভার-সাইড মডেলটি নিতে পারেন এবং নিম্নলিখিতটি করে এটি জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করতে পারেন:

var model = @Html.Raw(Json.Encode(Model));

আপনার ক্ষেত্রে যদি আপনি কেবল ফ্লোরপ্ল্যানসেটিংস অবজেক্ট চান, কেবল Encodeসেই সম্পত্তিটি পাস করুন :

var floorplanSettings = @Html.Raw(Json.Encode(Model.FloorPlanSettings));

1
কেবল নিশ্চিত করার জন্য, একটি যুক্ত করার দরকার নেই; এর শেষে? কারণ আমি ভিএস-এর কাছ থেকে প্রম্পট পেয়েছি যে বিবৃতিটি সমাপ্ত নয়। তবে আমি যখন যুক্ত করার চেষ্টা করি; কোডটি চলমান না
নাল রেফারেন্স

1
আপনি কী জানেন, আমার বিভিন্ন প্রকল্পেও আমি একই ত্রুটি পেয়েছি। শুধু এটি উপেক্ষা করা; এটি ভিজুয়াল স্টুডিও সাহায্য করার চেষ্টা করছে, তবে, এই ক্ষেত্রে এটি ভুল। ফলস্বরূপ HTML এবং স্ক্রিপ্ট যা ব্রাউজারে প্রেরণ করা হয় তা সঠিক gets
জাস্টিন হেলগারসন

1
আমার জন্য এটি কাজ করেছে: var myModel = @ {@ Html.Raw (Json.Encode (Model));}
লুকানো

1
যদি মডেলটি প্রাথমিক মান হয় (সম্পাদনা পৃষ্ঠার পরিবর্তে পৃষ্ঠা তৈরি করুন) এবং "রেফারেন্সেরর: মডেল সংজ্ঞায়িত হয় না" কাজ করে না Not
জ্যাক

2
এএসপি.নেট কোর-এ, জসন.সিরাইলাইজ ()
মোহাম্মদ নূরল্ডিন

131

উত্তরের বিষয়বস্তু

1) .cshtmlফাইলগুলিতে জাভাস্ক্রিপ্ট / জকোয়ারি কোড ব্লকে মডেল ডেটা কীভাবে অ্যাক্সেস করবেন

2) জাভাস্ক্রিপ্ট / জাকোয়ারি কোড ব্লক .jsফাইলগুলিতে মডেল ডেটা কীভাবে অ্যাক্সেস করবেন

.cshtmlফাইলগুলিতে জাভাস্ক্রিপ্ট / জকোয়ারি কোড ব্লকে মডেল ডেটা কীভাবে অ্যাক্সেস করবেন

Modelজাভাস্ক্রিপ্ট ভেরিয়েবলের জন্য দুই ধরণের সি # ভেরিয়েবল ( ) অ্যাসাইনমেন্ট রয়েছে।

  1. প্রপার্টি নিয়োগ - মৌলিক datatypes পছন্দ int, string, DateTime(উদা: Model.Name)
  2. অবজেক্ট নিয়োগ - কাস্টম বা Inbuilt শ্রেণীর (উদা: Model, Model.UserSettingsObj)

এই দুটি কার্যকারিতা বিশদটি খতিয়ে দেখি।

উত্তরের বাকি অংশগুলির জন্য AppUserউদাহরণ হিসাবে নীচের মডেলটি বিবেচনা করুন ।

public class AppUser
{
    public string Name { get; set; }
    public bool IsAuthenticated { get; set; }
    public DateTime LoginDateTime { get; set; }
    public int Age { get; set; }
    public string UserIconHTML { get; set; }
}

এবং আমরা এই মডেলটি নির্ধারিত মানগুলি

AppUser appUser = new AppUser
{
    Name = "Raj",
    IsAuthenticated = true,
    LoginDateTime = DateTime.Now,
    Age = 26,
    UserIconHTML = "<i class='fa fa-users'></i>"
};

সম্পত্তি বরাদ্দ

অ্যাসাইনমেন্টের জন্য আলাদা সিনট্যাক্স ব্যবহার করতে এবং ফলাফলগুলি পর্যবেক্ষণ করতে দিন।

1) উদ্ধৃতি সম্পত্তি অর্পণ ছাড়া।

var Name = @Model.Name;  
var Age = @Model.Age;
var LoginTime = @Model.LoginDateTime; 
var IsAuthenticated = @Model.IsAuthenticated;   
var IconHtml = @Model.UserIconHTML;  

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন যে বেশ কয়েকটি ত্রুটি রয়েছে Rajএবং Trueএটি জাভাস্ক্রিপ্ট ভেরিয়েবল হিসাবে বিবেচিত হয় এবং যেহেতু তারা এটিকে একটি variable undefinedত্রুটি উপস্থিত করে না । যেখানে ডেটটাইম ভেরিয়েবলের ক্ষেত্রে ত্রুটিটি হ'ল unexpected numberসংখ্যার বিশেষ অক্ষর থাকতে পারে না, তাই HTML ট্যাগগুলি তার সত্তার নামগুলিতে রূপান্তরিত হয় যাতে ব্রাউজারটি আপনার মান এবং এইচটিএমএল মার্কআপের সাথে মিশে না যায়।

2) উদ্ধৃতি সম্পত্তি অ্যাসাইনমেন্ট।

var Name = '@Model.Name';
var Age = '@Model.Age';
var LoginTime = '@Model.LoginDateTime';
var IsAuthenticated = '@Model.IsAuthenticated';
var IconHtml = '@Model.UserIconHTML'; 

এখানে চিত্র বর্ণনা লিখুন

ফলাফলগুলি বৈধ, সুতরাং সম্পত্তি অ্যাসাইনমেন্টের উদ্ধৃতি আমাদেরকে বৈধ বাক্য গঠন দেয়। তবে মনে রাখবেন যে সংখ্যাটি Ageএখন একটি স্ট্রিং, সুতরাং আপনি যদি না চান তবে আমরা কেবল উদ্ধৃতিগুলি সরাতে পারি এবং এটি একটি সংখ্যা প্রকার হিসাবে রেন্ডার হবে।

3) ব্যবহার করে @Html.Rawকিন্তু উদ্ধৃতি মোড়ানো ছাড়া

 var Name = @Html.Raw(Model.Name);
 var Age = @Html.Raw(Model.Age);
 var LoginTime = @Html.Raw(Model.LoginDateTime);
 var IsAuthenticated = @Html.Raw(Model.IsAuthenticated);
 var IconHtml = @Html.Raw(Model.UserIconHTML);

এখানে চিত্র বর্ণনা লিখুন

ফলাফল যাই হোক ব্যবহার করে আমাদের পরীক্ষা ক্ষেত্রে 1. একই রকম @Html.Raw()উপর HTMLস্ট্রিং আমাদেরকে কিছু পরিবর্তন দেখিয়েছিলেন। এইচটিএমএলটির সত্তার নাম পরিবর্তন না করেই ধরে রাখা যায়।

Html.Raw () দস্তাবেজগুলি থেকে

এইচটিএমএল স্ট্রিং ইনস্ট্যান্সে এইচটিএমএল মার্কআপকে মোড়ানো থাকে যাতে এটি HTML চিহ্নআপ হিসাবে ব্যাখ্যা করা হয়।

তবে এখনও আমাদের অন্যান্য লাইনে ত্রুটি রয়েছে।

4) ব্যবহার @Html.Rawএবং এছাড়াও উদ্ধৃতি মধ্যে মোড়ানো

var Name ='@Html.Raw(Model.Name)';
var Age = '@Html.Raw(Model.Age)';
var LoginTime = '@Html.Raw(Model.LoginDateTime)';
var IsAuthenticated = '@Html.Raw(Model.IsAuthenticated)';
var IconHtml = '@Html.Raw(Model.UserIconHTML)';

এখানে চিত্র বর্ণনা লিখুন

ফলাফল সব ধরণের সঙ্গে ভাল। তবে আমাদের HTMLডেটা এখন নষ্ট হয়ে গেছে এবং এটি স্ক্রিপ্টগুলি ভেঙে দেবে। সমস্যাটি হ'ল কারণ আমরা 'ডেটা মোড়ানোর জন্য একক উদ্ধৃতি ব্যবহার করছি এবং এমনকি ডেটাতে একক উদ্ধৃতি রয়েছে।

আমরা 2 টি পদ্ধতির সাহায্যে এই সমস্যাটি কাটিয়ে উঠতে পারি।

1) " "এইচটিএমএল অংশ মোড়ানোর জন্য ডাবল উক্তি ব্যবহার করুন । অভ্যন্তরীণ তথ্য যেমন একক উদ্ধৃতি আছে। (নিশ্চিত হয়ে নিন যে ডাবল উদ্ধৃতি দিয়ে মোড়ানোর পরেও "ডেটার মধ্যে খুব বেশি কিছু নেই)

  var IconHtml = "@Html.Raw(Model.UserIconHTML)";

2) আপনার সার্ভারের পাশের কোডটির অর্থ অক্ষরটিকে এড়িয়ে চলুন। মত

  UserIconHTML = "<i class=\"fa fa-users\"></i>"

সম্পত্তি বরাদ্দ উপসংহার

  • সংখ্যাযুক্ত ডেটা টাইপের জন্য উদ্ধৃতিগুলি ব্যবহার করুন।
  • সংখ্যার ডেটা টাইপের জন্য কোট ব্যবহার করবেন না।
  • Html.Rawআপনার এইচটিএমএল ডেটা যেমন আছে তেমন ব্যাখ্যা করতে ব্যবহার করুন ।
  • সার্ভার সাইডের অর্থের উদ্ধৃতিগুলি এড়ানোর জন্য আপনার এইচটিএমএল ডেটার যত্ন নিন, বা জাভাস্ক্রিপ্ট ভেরিয়েবলের অ্যাসাইনমেন্টের সময় ডেটার চেয়ে আলাদা কোট ব্যবহার করুন।

অবজেক্ট অ্যাসাইনমেন্ট

অ্যাসাইনমেন্টের জন্য আলাদা সিনট্যাক্স ব্যবহার করতে এবং ফলাফলগুলি পর্যবেক্ষণ করতে দিন।

1) উদ্ধৃতি অবজেক্ট অ্যাসাইনমেন্ট ছাড়া।

  var userObj = @Model; 

এখানে চিত্র বর্ণনা লিখুন

আপনি যখন জাভাস্ক্রিপ্ট ভেরিয়েবলকে AC # অবজেক্ট বরাদ্দ করবেন তখন সেই বস্তুর মান .ToString()নির্ধারিত হবে। সুতরাং উপরের ফলাফল।

2 উদ্ধৃতি অবজেক্ট বরাদ্দ

var userObj = '@Model'; 

এখানে চিত্র বর্ণনা লিখুন

3)Html.Raw উদ্ধৃতি ছাড়া ব্যবহার ।

   var userObj = @Html.Raw(Model); 

এখানে চিত্র বর্ণনা লিখুন

4)Html.Raw উদ্ধৃতি সহ ব্যবহার

   var userObj = '@Html.Raw(Model)'; 

এখানে চিত্র বর্ণনা লিখুন

Html.Rawআমাদের জন্য কোন অনেক ব্যবহারের ছিল পরিবর্তনশীল করার জন্য একটি বস্তুর বরাদ্দ হয়েছে।

5)Json.Encode() উদ্ধৃতি ব্যতীত ব্যবহার

var userObj = @Json.Encode(Model); 

//result is like
var userObj = {&quot;Name&quot;:&quot;Raj&quot;,
               &quot;IsAuthenticated&quot;:true,
               &quot;LoginDateTime&quot;:&quot;\/Date(1482572875150)\/&quot;,
               &quot;Age&quot;:26,
               &quot;UserIconHTML&quot;:&quot;\u003ci class=\&quot;fa fa-users\&quot;\u003e\u003c/i\u003e&quot;
              };

আমরা কিছু পরিবর্তন দেখতে পাই, আমরা দেখতে পাই যে আমাদের মডেলটিকে একটি বস্তু হিসাবে ব্যাখ্যা করা হচ্ছে। তবে আমাদের সেই বিশেষ চরিত্রগুলি পরিবর্তিত হয়েছে entity names। উপরোক্ত সিনট্যাক্সগুলিকে উদ্ধৃতিগুলিতে মোড়ানোও খুব বেশি কার্যকর নয়। আমরা কেবল উদ্ধৃতিতে একই ফলাফল পেতে।

জসন.এনকোডের ডক্স থেকে ()

জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (জেএসএন) ফর্ম্যাটে থাকা একটি স্ট্রিংয়ে ডেটা অবজেক্টকে রূপান্তর করে।

যেমন আপনি ইতিমধ্যে entity Nameসম্পত্তি বরাদ্দের সাথে এই সমস্যাটির মুখোমুখি হয়ে এসেছেন এবং যদি মনে থাকে তবে আমরা ব্যবহারের মাধ্যমে এটি অতিক্রম করেছি Html.Raw। সুতরাং এটি চেষ্টা করে দেখুন। একত্রিত করতে দেয় Html.RawএবংJson.Encode

6) ব্যবহার করে Html.Rawএবং Json.Encodeউদ্ধৃতি ছাড়াই।

var userObj = @Html.Raw(Json.Encode(Model));

ফলাফলটি একটি বৈধ জাভাস্ক্রিপ্ট অবজেক্ট

 var userObj = {"Name":"Raj",
     "IsAuthenticated":true,
     "LoginDateTime":"\/Date(1482573224421)\/",
     "Age":26,
     "UserIconHTML":"\u003ci class=\"fa fa-users\"\u003e\u003c/i\u003e"
 };

এখানে চিত্র বর্ণনা লিখুন

7) ব্যবহার Html.Rawএবং Json.Encodeউদ্ধৃতি মধ্যে।

var userObj = '@Html.Raw(Json.Encode(Model))';

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখছেন যে উদ্ধৃতি দিয়ে মোড়ানো আমাদের একটি JSON ডেটা দেয়

অবজেক্ট অ্যাসাইনমেন্টে অন্তর্ভুক্তি

  • ব্যবহারের Html.Rawএবং Json.Encodecombintaion হিসেবে জাভাস্ক্রিপ্ট পরিবর্তনশীল আপনার বস্তুর দায়িত্ব অর্পণ করা জাভাস্ক্রিপ্ট অবজেক্ট
  • একটি JSON পেতে এটির অভ্যন্তরে ব্যবহার করুন Html.Rawএবং মোড়ানোওJson.Encodequotes

দ্রষ্টব্য: আপনি যদি পর্যালোচনা করেছেন ডেটাটাইম ডেটা ফর্ম্যাটটি সঠিক নয়। এটি কারণ যা আগে বলা হয়েছিল Converts a data object to a string that is in the JavaScript Object Notation (JSON) formatএবং জেএসওনে কোনও dateপ্রকার নেই। এটি ঠিক করার জন্য অন্যান্য বিকল্পগুলি জাভাস্কিপ্ট তারিখ () অবজেক্টটি ব্যবহার করে এই ধরণের হ্যান্ডেল করার জন্য কোডের অন্য একটি লাইন যুক্ত করা হয়

var userObj.LoginDateTime = new Date('@Html.Raw(Model.LoginDateTime)'); 
//without Json.Encode


.jsফাইলগুলিতে জাভাস্ক্রিপ্ট / জকোয়ারি কোড ব্লকে মডেল ডেটা কীভাবে অ্যাক্সেস করবেন

রেজার সিনট্যাক্সের কোনও .jsফাইলের কোনও অর্থ নেই এবং তাই আমরা সরাসরি আমাদের মডেল কোনও .jsফাইল insisde ব্যবহার করতে পারি না । তবে একটি কর্মক্ষেত্র আছে।

1) সমাধান জাভাস্ক্রিপ্ট গ্লোবাল ভেরিয়েবল ব্যবহার করছে ।

আমাদের একটি গ্লোবাল স্কোপড জাভাস্কিপ্ট ভেরিয়েবলের মান নির্ধারণ করতে হবে এবং তারপরে আপনার .cshtmlএবং .jsফাইলগুলির সমস্ত কোড ব্লকের মধ্যে এই ভেরিয়েবলটি ব্যবহার করতে হবে। সুতরাং বাক্য গঠন হবে

<script type="text/javascript">
  var userObj = @Html.Raw(Json.Encode(Model)); //For javascript object
  var userJsonObj = '@Html.Raw(Json.Encode(Model))'; //For json data
</script>

এই জায়গায় আমরা ভেরিয়েবল ব্যবহার করতে পারেন সঙ্গে userObjএবং userJsonObjযেমন এবং যখন প্রয়োজন ছিল।

দ্রষ্টব্য: আমি ব্যক্তিগতভাবে গ্লোবাল ভেরিয়েবলগুলি ব্যবহার করার পরামর্শ দিই না কারণ এটি রক্ষণাবেক্ষণের জন্য খুব শক্ত হয়ে যায়। তবে আপনার যদি অন্য কোনও বিকল্প না থাকে তবে আপনি এটির নামকরণের যথাযথ সম্মেলন ব্যবহার করে ব্যবহার করতে পারেন .. এরকম কিছু userAppDetails_global

২) ফাংশন ( ) ব্যবহার করে বা closure কোনও ফাংশনে মডেল ডেটার উপর নির্ভরশীল সমস্ত কোড মোড়ানো। এবং তারপরে .cshtmlফাইল থেকে এই ফাংশনটি সম্পাদন করুন।

external.js

 function userDataDependent(userObj){
  //.... related code
 }

.cshtml ফাইল

 <script type="text/javascript">
  userDataDependent(@Html.Raw(Json.Encode(Model))); //execute the function     
</script>

দ্রষ্টব্য: আপনার বাহ্যিক ফাইলটি উপরের স্ক্রিপ্টের পূর্বে অবশ্যই উল্লেখ করা উচিত। অন্য userDataDependentফাংশন অপরিজ্ঞাত।

এছাড়াও নোট করুন যে ফাংশনটি অবশ্যই বিশ্বব্যাপী সুযোগে থাকতে হবে। সুতরাং উভয় সমাধানই আমাদের বিশ্বব্যাপী বাদ দেওয়া খেলোয়াড়দের সাথে ডিল করতে হবে।


মডেল সম্পত্তি জাভাস্ক্রিপ্ট আপডেট করা এবং নিয়ামক অ্যাকশন পদ্ধতিতে প্রেরণ করা যাবে?

@ সর্টনউন্যান্স হ্যাঁ আপনি যা করতে পারেন, আপনি কোনও ফর্ম থেকে পরিবর্তিত ডেটা জমা দিতে পারেন, বা আপনি যদি পৃষ্ঠাটি পুনরায় লোড করতে না চান তবে আপনি
এজেএক্স

আমি এজ্যাক্স ব্যবহার করছিলাম না, এবং জাভাস্ক্রিপ্টে কেবল মডেল সম্পত্তি পরিবর্তন করার চেষ্টা করেছি। তবে ফর্মটি জমা দেওয়ার সময় এই পরিবর্তনটি মডেলটিতে প্রতিফলিত হয়নি। আমি এর মতো কিছু করছিলাম: var মডেল = @ এইচটিএমএল.রা (জসন.এনকোড (মডেল)); Model.EventCommand = "আপডেটালুয়ে"; এটি আমাকে সঠিকভাবে মডেল দিয়েছে এবং মানটি আপডেট করেছে তবে জমা দেওয়ার সময় অ্যাকশন পদ্ধতিতে পরিবর্তন অনুপস্থিত ছিল। (যদিও আমি লুকানো এইচটিএমএল নিয়ন্ত্রণ ব্যবহার করে একই জিনিসটি করেছি এবং এটিকে ইভেন্ট কম্যান্ডে আবদ্ধ করেছি এবং জাভাস্ক্রিপ্টে এর মান আপডেট করেছি But তবে ভাবছি যে মডেলটিতে সরাসরি এটি করতে পারে কিনা?)

@ সোর্টডনউন আমি আপনার বক্তব্যটি পেয়েছি, var model = @Html.Raw(Json.Encode(Model));এটি একটি জাভাস্ক্রিপ্ট অবজেক্ট তৈরি করবে modelযা সি # মডেলের সাথে আপনার কোনও সংযোগ নেই যা আপনি দর্শনে পাস করেন। Modelপ্রকৃতপক্ষে দৃশ্যটি রেন্ডার হওয়ার পরে আর কিছু হবে না । সুতরাং ইউআইতে থাকা ফর্মটির জাভাস্ক্রিপ্ট অবজেক্টের ডেটা পরিবর্তনের বিষয়ে কোনও চিহ্ন থাকবে না। আপনাকে এখন এজেএক্সের মাধ্যমে কন্ট্রোলারে এই পুরো সংশোধিত মডেলটি পাস করতে হবে, অথবা জাভাস্ক্রিপ্ট ব্যবহার করে ফর্মের সাথে আপনার ইনপুট নিয়ন্ত্রণের মান আপডেট করতে হবে।
রাজশেকার রেড্ডি

Although I did the same thing using hidden Html control and bound it to EventCommand and updated it's value in javascript. But wondering if could do same directly to model?এই বিবৃতিটির জন্য .. EventCommand এমভিসিতে কোনও নেই , এটি ওয়েবফর্মের জন্য যেখানে ইউআই এবং সার্ভারের ক্রিয়াকলাপগুলির মধ্যে একটি সংযোগ রয়েছে, এমভিসিতে এটি সমস্ত আলাদা হয়ে যায়। আপনার সাথে নিয়ন্ত্রকের সাথে কথোপকথনের জন্য কেবল এজেএক্স বা ফর্ম জমা বা নতুন পৃষ্ঠার অনুরোধের মাধ্যমে (পুনরায়
লোডও করা

21

এটি ব্যবহার করে দেখুন: (আপনি একক উদ্ধৃতি মিস করেছেন)

var floorplanSettings = '@Html.Raw(Json.Encode(Model.FloorPlanSettings))';

1
কোট দিয়ে @JuanPieterse আপনি একটি দেয় JSONwihtout কোট আপনি একটি দেয় javascript Object। আরও তথ্যের জন্য আমার উত্তরটি একই থ্রেডে পরীক্ষা করুন। stackoverflow.com/a/41312348/2592042
রাজশেকার রেড্ডি

এটি সত্য নয়, @ উদ্যানবাউইন সমাধানটি আমার ক্ষেত্রে কাজ করেছে, আমি সমস্যাগুলি পেয়েছি এবং এটি একক উদ্ধৃতিগুলির মধ্যে মুড়ে ফেলার মতো কাজ করেছিলাম, ধন্যবাদ আপনাকে;)
দিমিত্রি

4

প্যারেনের চারপাশের মডেল সম্পত্তি মোড়ানো আমার পক্ষে কাজ করেছিল। আপনি এখনও ভিজ্যুয়াল স্টুডিওতে আধা-কোলন সম্পর্কে অভিযোগ করে একই সমস্যা পেয়েছেন তবে এটি কার্যকর হয়।

var closedStatusId = @(Model.ClosedStatusId);

0

যদি "রেফারেন্স এরর : মডেল সংজ্ঞায়িত না হয়" ত্রুটি উত্থাপিত হয়, তবে আপনি নিম্নলিখিত পদ্ধতিটি ব্যবহার করার চেষ্টা করতে পারেন:

$(document).ready(function () {

    @{  var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
         var json = serializer.Serialize(Model);
    }

    var model = @Html.Raw(json);
    if(model != null && @Html.Raw(json) != "undefined")
    {
        var id= model.Id;
        var mainFloorPlanId = model.MainFloorPlanId ;
        var imageDirectory = model.ImageDirectory ;
        var iconsDirectory = model.IconsDirectory ;
    }
});

আশাকরি এটা সাহায্য করবে...


0

আমি এটির দেরী জানি কিন্তু এই সমাধান। নেট ফ্রেমওয়ার্ক এবং। নেট কোর উভয়ের জন্যই নিখুঁতভাবে কাজ করছে:

@ System.Web.HttpUtility.JavaScriptStringEncode ()

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