রেজারে স্থানীয় পরিবর্তনশীল কীভাবে ঘোষণা করবেন?


354

আমি এসপ নেটওয়্যার এমভিসি 3 তে একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করছি I আমি এটিতে খুব নতুন। রেজার ব্যবহারের দৃষ্টিতে আমি কিছু স্থানীয় ভেরিয়েবল ঘোষণা করতে এবং এটি পুরো পৃষ্ঠা জুড়ে ব্যবহার করতে চাই। কিভাবে এই কাজ করা যেতে পারে?

নিম্নলিখিত ক্রিয়াটি করতে সক্ষম হওয়ায় এটি তুচ্ছ মনে হচ্ছে:

@bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
@if (isUserConnected)
{ // meaning that the viewing user has not been saved
    <div>
        <div> click to join us </div>
        <a id="login" href="javascript:void(0);" style="display: inline; ">join</a>
    </div>
}

তবে এটি কাজ করে না। এটা কি সম্ভব?

উত্তর:


521

আমি মনে করি আপনি খুব কাছাকাছি ছিলেন, এটি চেষ্টা করুন:

@{bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);}
@if (isUserConnected)
{ // meaning that the viewing user has not been saved so continue
    <div>
        <div> click to join us </div>
        <a id="login" href="javascript:void(0);" style="display: inline; ">join here</a>
    </div>
}

ওহ শঙ্কিত, আমি প্রায় প্রতিটি সম্ভাব্য কাজ চেষ্টা করছিলাম তবে এটি। থমাস ধন্যবাদ!
ভন্ডিপ

আপনি কীভাবে ভিবি.নেটে এটি করবেন?
স্টিফান পল নোয়াক

7
ওহ, আমি নিজেই এটি খুঁজে পেয়েছি: @Code .. End Codeপরিবর্তে@{ .. }
স্টিফান পল নোয়াক

1
@ অভিজিৎ.নগ্রে, যে প্রশ্নে তিনি লিখেছেন: @bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);কিন্তু পরিবর্তনশীল সংজ্ঞা অবশ্যই একটি "কোড ব্লকের" ভিতরে থাকতে হবে। আমি কেন এর থেকে আরও ভাল উত্তর দিতে পারি না, এটি ঠিক রেজার কীভাবে কাজ করে।
টমাস জানসন

2
@ অভিজিৎনাগ্রে - কোথা থেকে কোড শুরু হয় এবং শেষ হয় তা বোঝার ক্ষেত্রে রেজারটি সাধারণত বেশ ভাল তবে এটি নিখুঁত নয়। কখনও কখনও আমরা একে রেজার / সি # হিসাবে বিবেচনা করা উচিত এবং কোনটি করা উচিত নয় সে সম্পর্কে কেবল একটি সামান্য ইঙ্গিত দিতে হবে। আপনি যদি কখনও রেজার ত্রুটি পান তবে { }ট্যাগ যুক্ত করা প্রথম পদক্ষেপ
জোন স্টোরি

50

আমি ভেরিয়েবল একই ব্লকের মধ্যে থাকা উচিত বলে মনে করি:

@{bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
    if (isUserConnected)
    { // meaning that the viewing user has not been saved
        <div>
            <div> click to join us </div>
            <a id="login" href="javascript:void(0);" style="display: inline; ">join</a>
        </div>
    }
    }

এটি ক্ষেত্রে মনে হয়, এমভিসি 3-তে অন্তত in
ম্যাথু ওয়ালটন

1
অসাধারণ! আপনি কীভাবে তারপরে isUserConnectedপৃষ্ঠার আরও নীচে আবার চলকটি ব্যবহার করবেন এমন কোনও ধারণা ?
শার্পসি

@ শার্পসি একবার আপনি এর মতো একটি ভেরিয়েবল ঘোষণা করলে এটি সেই that। Cshtml ফাইলের বাকি অংশে উপলব্ধ। পরে ফাইলটিতে আপনি কিছু করতে পারেন @if (isUserConnected) { /* stuff if connected */ }বা <div>Connected? @isUserConnected</div>(এটি স্ট্রিংগুলির সাথে আরও ভাল কাজ করে)। যদিও এটি ফাইলের বাইরে পাওয়া যায় না (যেমন আপনাকে এটি পৃথকভাবে পৃথকভাবে ঘোষণা করতে হবে)।
ড্যান মঙ্গিয়ারেলি

18

আপনি এটি ব্যবহার করতে পারেন:

@if(string.IsNullOrEmpty(Model.CreatorFullName))
{
...your code...
}

কোডে ভেরিয়েবলের দরকার নেই


6
এটি প্রশ্নের উত্তর দেয় না।
ওভেন পলিং

13

আপনি যদি কোনও int ভেরিয়েবলের সন্ধান করছেন, কোড লুপ হিসাবে বাড়ানো একটি, আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

@{
  int counter = 1;

  foreach (var item in Model.Stuff) {
    ... some code ...
    counter = counter + 1;
  }
} 

12

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

@foreach (var item in Model.Stuff)
{
    var file = item.MoreStuff.FirstOrDefault();

    <li><a href="@item.Source">@file.Name</a></li>
}

এটি আমি আপনাকে ধন্যবাদ খুঁজছিলাম কি !!
নিনজানেল

2

পৃষ্ঠা জুড়ে অ্যাক্সেস করার জন্য কোনও ভেরি ঘোষণা করতে। পৃষ্ঠার শীর্ষে এটি সাধারণত কার্যকর হয়। স্পষ্ট বা স্পষ্টভাবে আপনার পছন্দ।

          @{
               //implicit
               var something1 = "something";
               //explicit
               string something2 = "something";
          }


            @something1 //to display on the page
            @something2 //to display on the page

1

আপনি সমস্ত কিছু একটি ব্লকে রাখতে পারেন এবং যে ব্লকটি আপনি চান সেটি নীচের কোডের ঠিক ঠিক মতো কোনও কোড সহজেই লিখতে পারেন:

@{
        bool isUserConnected = string.IsNullOrEmpty(Model.CreatorFullName);
        if (isUserConnected)
        { // meaning that the viewing user has not been saved
            <div>
                <div> click to join us </div>
                <a id="login" href="javascript:void(0);" style="display: inline; ">join</a>
            </div>
        }
    }

এটি আপনাকে প্রথমে একটি ক্লিনার কোড রাখতে সহায়তা করে এবং আপনি নিজের পৃষ্ঠাটি বহুবার বিভিন্ন ব্লক কোড লোড করা থেকে রোধ করতে পারেন

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