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