0

在我的 MVC 应用程序中,我根据 Model.Count 指定了两个条件以在 View 中显示值。
看法

  @model IEnumerable<SampleECommerce.Models.DetailsModel>
  @using (Html.BeginForm("Details", "Grid", new { UserID = Request.QueryString["UserID"], partnerid = Request.QueryString["Partnerid"] }, FormMethod.Post))
    {
    if (Model.Count() == 0)
    {
    @foreach (var item in Model)
    {
        <table>
            <tr>
                <td>
                    @Html.DisplayNameFor(model => model.FirstName)
                    <input id="FirstName" type="text" class="TextBoxBorder" name="FirstName" value="@item.FirstName" /> // When the Model count is zero, the label and textbox is not displayed.
                </td>
            </tr>
        </table>
    }
    else
    {
    @foreach (var item in Model)
    {
        <table>
            <tr>
                <td>
                    @Html.DisplayNameFor(model => model.FirstName)
                    <input id="MFirstName" type="text" class="TextBoxBorder" name="FirstName" value="@item.FirstName" />
                </td>
            </tr>
        </table>
    }


控制器

    public ActionResult Details()
       {
           string userid = Request.QueryString["UserID"];
           string partnerid = Request.QueryString["Partnerid"];

           con.Open();
           SqlCommand cmd = new SqlCommand("select FirstName from Details where UserID = +userid+", con);

       SqlDataReader dr = cmd.ExecuteReader();
       List<DetailsModel> objmodel = new List<DetailsModel>();
       while (dr.Read())
       {
           objmodel.Add(new DetailsModel()
           {
               FirstName = dr["First Name"].ToString(),


           });
       }
       dr.Close();

       return View(objmodel);
   }

当 Model.Count 为零时,不显示标签和文本框。
当 model.count 基于用户 ID 为零时,我试图向文本框插入新值 我试图将文本框绑定到对Link
中指定的所有方式进行建模。 1. @Html.TextBoxFor(model => model.FirstName) FirstName 中的错误说明“System.Collections.Generic.IEnumerable 找不到 FirstName 的定义或没有扩展方法” 2. @Html.TextBox(model=>model.FirstName) “错误说明无法将 Lamba 表达式转换为字符串类型” 当 model.count 为零时如何将文本框值绑定并显示到模型。有什么建议么 ??


4

1 回答 1

2

Model.Count为 0 时,foreach什么都不做。

  @model IEnumerable<SampleECommerce.Models.DetailsModel>
  @using (Html.BeginForm("Details", "Grid", new { UserID = Request.QueryString["UserID"], partnerid = Request.QueryString["Partnerid"] }, FormMethod.Post))
    {
        <table>
        if (Model.Count() == 0)
        {

                <tr>
                    <td>
                        @Html.DisplayNameFor(model => model.FirstName)
                        <input id="FirstName" type="text" class="TextBoxBorder" name="FirstName" /> // When the Model count is zero, the label and textbox is not displayed.
                    </td>
                </tr>
        }
        else
        {
                @foreach (var item in Model)
                {

                        <tr>
                            <td>
                                @Html.DisplayNameFor(model => model.FirstName)
                                <input id="MFirstName" type="text" class="TextBoxBorder" name="FirstName" value="@item.FirstName" />
                            </td>
                        </tr>

                }
        }
        <tr>
            <td>
                <input type="submit" value="submit" />
            </td>
        </tr>
        </table>
    }
于 2013-05-03T11:41:58.007 回答