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

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

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

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

T4MVC

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

 معرفی T4MVC

T4MVC می تواند بر روی نسخه های Visual Studio 2010, 2012  و  2013نصب شود وASP.NET MVC 4.0  و  5.0این Package را پشتیبانی می کنند، شاید بتوانید بر روی سایر نسخه ها از این Package استفاده کنید اما این Package فقط بر روی گزینه های گفته شده تست شده است.

 

نصب T4MVC

برای نصب این Package کافی است که دستور زیر را از طریق Package Manager Console اجرا کنید

Install-Package T4MVC

پس از اجرای این دستور دو فایل به پروژه شما اضافه می شود.

هدف T4MVC

این Package برای جلوگیری از نوشتن اسامی کنترلر ها و اکشن ها و در نهایت view ها به صورت Hard Code مورد استفاده قرار می گیرد.

برای مثال کدزیر را در نظر بگیرید:

<% Html.RenderPartial("DinnerForm"); %>

 

ما از عبارت های رشته ای برای فراخوانی این Partial استفاده کرده ایم، اگر فردا شما بخواهید این نام را تغییر دهید باید در بهترین و سریعترین روش ممکن با استفاده از Finde ویژوال استادیو تمامی نام های مربوطه را تغییر دهید.

اما چرا از ابتدا از روش دیگری استفاده نکنیم!

T4MVC در واقع نام تمامی View,Conreoller,Action ها را به صورت خودکار در خود ذخیره می کند و عملا یک Enumeration  برای شما به وجود می آورد تا در آینده در صورتی که نامی را برای یک View,Conreoller,Action عوض کردید، این نام در تمامی پروژه عوض شود.

مثال:

<% Html.RenderPartial("DinnerForm"); %>

از این به بعد ما نام ها را به صورت زیر خواهیم نوشت:

 

<% Html.RenderPartial(MVC.Dinners.Views.DinnerForm); %>

ادامه مطلب...

استفاده از یک تابع کنترلر در 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})

up
ما را در گوگل محبوب کنید