1

大家好,我有一些值......使用它们我正在我的控制器中构建一个字符串,我想在我的视图页面中显示字符串......

这是我的控制器代码

[ChildActionOnly]
public ActionResult History()
{
    //if(Session["DetailsID"]!=null)
    //{
    int id = Convert.ToInt16(Session["BugID"]);
       var History = GetBugHistory(id);
      return PartialView(History);
    //}
    //int id1 = Convert.ToInt16(Session["BugID"]);
    //var History1 = GetBugHistory(id1);
    //return PartialView(History1);

}
/// <summary>
///To the List of Resolutions and Employeenames Based on BugID
/// </summary>
/// <param>Bug Id</param>
/// <returns>BugHistory</returns>       
public List<BugModel> GetBugHistory(int id)
{

    var modelList = new List<BugModel>();
    using (SqlConnection conn = new SqlConnection(ConnectionString))
    {
        conn.Open();
        SqlCommand dCmd = new SqlCommand("History", conn);
        dCmd.CommandType = CommandType.StoredProcedure;
        dCmd.Parameters.Add(new SqlParameter("@BugID", id));
        SqlDataAdapter da = new SqlDataAdapter(dCmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        StringBuilder sb = new StringBuilder();
        conn.Close();
        for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
        {
            var model = new BugModel();
            model.FixedBy = ds.Tables[0].Rows[i]["FixedByEmployee"].ToString();
            model.Resolution = ds.Tables[0].Rows[i]["Resolution"].ToString();
            model.AssignedTo = ds.Tables[0].Rows[i]["AssignedEmployee"].ToString();
            model.Status = ds.Tables[0].Rows[i]["Status"].ToString();
            model.ToStatus= ds.Tables[0].Rows[i]["ToStatus"].ToString();                  
            modelList.Add(model);
            sb.Append("'" + model.FixedBy + "'" + "has updated the status from" + "'" + model.ToStatus + "'" + "to" + "'" + model.Status + "'" + "and Assigned to" + "'" + model.AssignedTo + "'");
        }
        return modelList;
    }           
}

我应该如何使用 foreach 循环在我的部分视图页面中显示此字符串

4

1 回答 1

0

阿尼尔,

我建议创建一个部分视图 (_BugModelList.cshtml),它纯粹处理BugModel. 这可能看起来像这样:

@model IList<BugModel>

<table>
    <thead>
        <tr>
            <th>Fixed by</th>
            <th>From Status</th>
            <th>To Status</th>
            <th>Assigned to</th>
        </tr>
    </thead>       
    @{
        foreach (var item in Model)
        {
            <tr>
                <td>@item.FixedBy</td>
                <td>@item.ToStatus</td>
                <td>@item.Status</td>
                <td>@item.AssignedTo</td>
            </tr>
        }
    }
</table>

或者,如果您想要根据控制器的单个字符串(显然未经测试):

@model IList<BugModel>

@{
    foreach (var item in Model)
    {
        <p>
            @{ "'"  + item.FixedBy + "'"
                    + " has updated the status from "
                    + "'"  + item.ToStatus + "'"
                    + " to " + "'" + item.Status + "'"
                    + " and Assigned to " + "'" + item.AssignedTo + "'"; }
        </p>
    }
}

然后将根据您当前的操作从您的主视图中调用它。显然,我已将其格式化为,table但您可以对其进行重构以适应,逻辑保持不变。

[编辑] - 重新阅读您的问题,您可能希望将列表显示为表格,而不是无序列表。见上面的编辑

于 2012-08-16T09:59:18.213 回答