ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۲ مطلب با کلمه‌ی کلیدی «View» ثبت شده است

استفاده از یک تابع کنترلر در View

بسم الله الرحمن الرحیم

طبیعتا شما تمامی توابع خود را کلاس های Common  نمی نویسید و مکن است بخواهید یک تابع ساده را که در Controller نوشته شده است در یک view استفاده کنید. برای استفاده از توابع در View  می توانید به صورت زیر عمل کنید:

تابع زیر در کنترلر نوشته شده است:

public int getClientID(string login)

    {
        var context = new MyEntity(new Uri("host/MyWCF.svc/"));

        var userID = from persons in context.PERSON
                     where persons.LOGIN == login
                     select persons.USER_ID;

        int uID = userID.First();
        var cli = from client in context.CLIENT
                  where client.USER_ID == uID
                  select client.CLIENT_ID;
        int cliID = cli.First();
        return cliID;
    }


می توان این تابع را به صورت زیر فراخوانی کرد اما با Error  مواجه خواهید شد

Client : @{ ((HomeController)(this.ViewContext.Controller)).getClientID(User.Identity.Name); }

خطایی که پس از اجرای این دستور دریافت می کنید به صورت زیر است:

Can only specify query options (orderby, where, take, skip) after last navigation

At line int uID = userID.First();

راه ساده ای که قبلا نیز شما از آن حتما استفاده کرده اید به صورت زیر است:

@Html.Action("Home","getClientID", new {login=User.Identity.Name})

using کردن در view

بسم الله الرحمن الرحیم

آموزش asp.net mvc

هنگامی که با یک view کار می کنید شما بدون اینکه Namespaceهای مربوطه را اضافه کرده باشید (برخلاف سایر کلاس ها) می توانید با تعدادی از Namespace ها بدون استفاده از دستور using کار کنید؟

برخی از فضاهای نام که بیشتر مورد استفاده خواهند بود به صورت پیش فرض توسط مایکروسافت در کلاس پیاده ساز view اضافه شده است. اما این کلاس کجاست؟

برای یافتن این کلاس باید به آدرس زیر بروید و به دنبال کلاسی بگردید که شامل محتوای viewشما باشد چون نامهای انتخابی ارتباطی با نامی که شما برای view خود انتخاب کردید ندارد اما از محتوای این کلاس ها می توانید به کلاس مربوطه دست پیدا کنید.

برای این کار بنده یک view با محتوای خاصی ایجاد کردم که در مسیر مربوطه پس از بررسی فایل ها به فایل مورد نظرم دست پیدا کردم و این فایل شامل اطلاعات زیر بود:

 

 

همان طور که در این فایل مشخص است Namespaceهایی به صورت پیش فرض توسط مایکروسافت به viewشما اضافه شده است. شما نیز می توانید به view خود Namespaceهای مورد نظر خود را اضاه کنید. اگر به یک فضای نام، تنها در یک view نیاز دارید بهتر است به روش معمولی آن را به صفحه اضافه کنید مثل کد زیر:


  @{
           MvcApplication2.App_Code.Class1 c = new MvcApplication2.App_Code.Class1();
           c.rets();
}

 

اما اگر به یک فضای نام در تمامی viewها نیاز دارید کافی است آن را در فایل web configیی که در فولدر view ها قراردارد، به صورت زیر اضافه کنید:


<namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="MvcApplication2.App_Code"/>
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
up
ما را در گوگل محبوب کنید