C# 无法在控制器中的视图和操作方法之间传递模型

C# 无法在控制器中的视图和操作方法之间传递模型,c#,asp.net-mvc,C#,Asp.net Mvc,我有用于对域进行身份验证的操作方法和视图。然后将COM对象传递给下面的视图。如果用户单击某个按钮,我希望执行需要COM对象的操作(如下面的操作方法所示)。问题是模型连接器的传递为null 查看: @model Decsec.Models.Connector @using (Html.BeginForm("ClassifyPrivUsers", "AuthenticateAD", FormMethod.Post)) { <input type="su

我有用于对域进行身份验证的操作方法和视图。然后将COM对象传递给下面的视图。如果用户单击某个按钮,我希望执行需要COM对象的操作(如下面的操作方法所示)。问题是模型连接器的传递为null

查看:

@model Decsec.Models.Connector

@using (Html.BeginForm("ClassifyPrivUsers", "AuthenticateAD", FormMethod.Post))
        {
            <input type="submit" value="Evaluate" class="btn btn btn-block" name="ClassifyPrivUsers" formmethod="post" />
        }
    [HttpPost]
    public ActionResult ClassifyPrivUsers(Connector connector)
    {
        // Extract privileged users from the Active Directory
        var privilegedUsers = ADExtractor.PrivilegedAccess(connector.pc);
        System.Diagnostics.Debug.WriteLine("PRIVILEGED USERS EXTRACTED");

        // Load the trained model for privileged users
        Classifier adminAccCl = LoadModel("LMT");
        System.Diagnostics.Debug.WriteLine("MODEL LOADED");
.....
public class Connector
{
    public int id { get; set; }
    public PrincipalContext pc { get; set; }
    public DirectoryEntry de { get; set; }

    public Connector(int id, PrincipalContext pc, DirectoryEntry de)
    {
        this.id = id;
        this.pc = pc;
        this.de = de;
    }

    public Connector() { }
}
型号:

@model Decsec.Models.Connector

@using (Html.BeginForm("ClassifyPrivUsers", "AuthenticateAD", FormMethod.Post))
        {
            <input type="submit" value="Evaluate" class="btn btn btn-block" name="ClassifyPrivUsers" formmethod="post" />
        }
    [HttpPost]
    public ActionResult ClassifyPrivUsers(Connector connector)
    {
        // Extract privileged users from the Active Directory
        var privilegedUsers = ADExtractor.PrivilegedAccess(connector.pc);
        System.Diagnostics.Debug.WriteLine("PRIVILEGED USERS EXTRACTED");

        // Load the trained model for privileged users
        Classifier adminAccCl = LoadModel("LMT");
        System.Diagnostics.Debug.WriteLine("MODEL LOADED");
.....
public class Connector
{
    public int id { get; set; }
    public PrincipalContext pc { get; set; }
    public DirectoryEntry de { get; set; }

    public Connector(int id, PrincipalContext pc, DirectoryEntry de)
    {
        this.id = id;
        this.pc = pc;
        this.de = de;
    }

    public Connector() { }
}

您的表单不包含任何关于
连接器属性的输入,但是您在这里尝试做什么-将模型发送到客户端,然后再原封不动地发送回来有什么意义?@StephenMuecke我的想法是让COM对象保持活动状态,以便在上面的操作中使用它。我曾尝试使用(Html.BeginForm(“ClassifyPrivUsers”,“AuthenticateAD”,FormMethod.Post,Model.pc))
,但它不会将模型发送回操作。为每个模型属性使用隐藏字段。在上一条注释中,
BeginForm()
的第四个参数添加Html属性,不是路线参数。@StephenMuecke那么我应该如何通过模型呢?