如何在模型中获得对象?

时间:2011-05-05 10:14:09

标签: asp.net-mvc-3 razor

我有一个模型SiteMapModel,里面有一个VirtualFolderModel对象。

public class SiteMapModel
{

    public SiteMapModel(DataRow data)
    {
        SMF_ID = Convert.ToInt32(data["SMF_ID"]);
        SMF_VF_ID = Convert.ToInt32(data["SMF_VF_ID"]);


        VirtualFolder = new VirtualFolderModel(data);
    }

    public VirtualFolderModel VirtualFolder;

    public int SMF_ID { get; set; }
    public int SMF_VF_ID { get; set; }


}

public class VirtualFolderModel
{
    public VirtualFolderModel(DataRow data)
    {
        VF_ID = Convert.ToInt32(data["VF_ID"]);
    }

    public int VF_ID { get; set; }
}   

在我的控制器中,我将模型传递给视图。

public ActionResult Edit(int id)
    {
        SiteMapData smd = new SiteMapData();
        SiteMapModel smm = new SiteMapModel(smd.GetFolderData((int)id, 15));

        return View(smm);
    }

如何在我看来使用它?

<div>
    <span class="editor-label">
        @Html.Label("Title")
    </span>
        @Html.TextBox("SMF_Name")
        @Html.ValidationMessage("SMF_Name")

    <span class="editor-label">
        @Html.Label("VF_ID")
    </span>
        @Html.TextBox("VF_ID")
        @Html.ValidationMessage("VF_ID")

    <input type="submit" value="Save" />
</div>   

@Html.TextBox("VF_ID")不起作用

1 个答案:

答案 0 :(得分:1)

在您的视图顶部添加:

@ModelType SitemapModel

编辑:对于C#,请使用:

@model SitemapModel

这样做只会告诉您的视图在运行时给出了哪种模型。在这种情况下,它是SitemapModel类型的对象。

在您的视图中,您可以将其引用至model.SMF_ID