如何从asp.net mvc c#中的视图访问类方法?

时间:2015-04-06 02:02:25

标签: c# asp.net asp.net-mvc class methods

我有控制器:Recruitment Controller.cs 我有方法/行动:cek recommended

    public string cekrecomended(string id)
    {
        id = EncryptDecrypt.Decrypt(id);
        string ada = "false";
        string jurusan = Session["Jurusan"].ToString();
        string pendidikan = Session["Pendidikan"].ToString();
        int usia = Convert.ToInt16(Session["Usia"]);
        string kelamin = Session["Kelamin"].ToString();
        double nilai = Convert.ToDouble(Session["Nilai"]);
        var data = (from c in db.ViewVacancyJabatanPerusahaans
                    where
                        c.Pendidikan.Contains(pendidikan) &&
                        (c.Jurusan.Contains(jurusan) || c.Jurusan.Contains("Semua jurusan")) &&
                        c.Nilai <= nilai &&
                        c.UsiaDari <= usia &&
                        c.UsiaSampai >= usia &&
                        c.JenisKelamin.Contains(kelamin) &&
                        c.TglAkhirlamaran >= DateTime.Now &&
                        c.Dlt == false &&
                        c.IDVancancy == Convert.ToInt16(id)
                    orderby c.IDVancancy descending
                    select c).Count();
        if (data > 0)
        {
            ada = "true";
        }
        return ada;
    }

我想从视图中访问cekrecomended。

@if(Human_Resource_Development.Controllers.RecruitmentController.cekrecomended(Convert.ToString(item.IDVancancy)) == "true")
{
    <button>Apply this position</button>
}

但是我收到了错误。

3 个答案:

答案 0 :(得分:1)

这会破坏模型,视图和控制器的分离MVC基于 - 在您的视图中,您应该只使用您的视图模型。在您的情况下,只需使用具有属性的视图模型,使该方法调用的结果可用。

答案 1 :(得分:1)

您应该将视图模型用于此目的。让我们说MyViewModel是模型的类,添加一个名为IsRecommended的布尔属性

public class MyViewModel
{
    // all of the other properties
    // ....

    public bool IsRecommended { get; set; }
}

在控制器操作方法

中设置IsRecommended的值
public ActionResult Index()
{
    MyViewModel model = new MyViewModel();

    // other codes here
    // ...

    model.IsRecommended = ....; // logic from cekrecomended method here

    return View(model);
}

确保在视图顶部显示此语法

@model MyViewModel

并确定&#34;应用此职位&#34;按钮将根据IsRecommended属性的值显示或不显示,如下所示

@if (Model.IsRecommended)
{
    <button>Apply this position</button>
}

答案 2 :(得分:0)

感谢您的回答。我的问题解决了,我有解决方案。 我只是改变

public string cekrecomended(string id)
{
    //bla bla
}

public static string cekrecomended(string id)
{
    //bla bla
}

我可以从视图中访问。