从视图到控制器MVC通过表中的值 [英] pass table values from view to controller mvc

查看:151
本文介绍了从视图到控制器MVC通过表中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的一个项目点网+占有率点,
在那里控制器获得SharePoint列表记录&安培;创建列表对象的列表。
鉴于捕捉对象为表中的一个模型和dilplay

表视图
这里输入的形象描述。

Index.cshtml

  @using(Html.BeginForm())
{
<表ID =timeTrackingViewBORDER =1>    &所述; TR>
        <第i个项目< /第i
        @for(VAR日期= @ M​​odel.Dates.AddDays( - (@ Model.DateRange-1));日期和LT = @ M​​odel.Dates;日期= date.AddDays(1))
        {
            <第i @ date.Day / @ date.Month / @ date.Year< /第i
        }    < / TR>
   @ {双[] = totalForToday新的双[@ Model.DateRange];}      @for(INT I = 0; I< @ Model.TimeTrakings.Count;我++)
      {
          // VAR PROJECTNAME = @ M​​odel.TimeTrakings [I] [0] .ProjectName;
        INT索引= 0;
        &所述; TR>
            &所述; TD>
                @ Model.TimeTrakings [I] [0] .ProjectName
            < / TD>
            @for(INT J = 0; J< Model.TimeTrakings [I] .Count之间的(); J ++)
            {
                totalForToday [指数] = totalForToday [指数] + @ Model.TimeTrakings [I] [J] .Hours;
                 VAR时间= @ Html.EditorFor(型号=> @ Model.TimeTrakings [I] [J]);
                < TD> @时间< / TD>
              @ * @ Html.EditorFor(型号=> @ Model.TimeTrakings [I] [J] .Hours)* @                指数++;
            }        < / TR>
    }    &所述; TR>
    < TD>总计天< / TD>
        @foreach(在totalForToday VAR TOT)
        {
            < TD> @ TOT< / TD>
        }    < / TR>
< /表>
<输入类型=提交名称=SubmitBtn/>
}

我想获得表中的数据到控制器..帮我我的即时通讯code只gettinh小时,需要让项目名称日期和放大器;小时在一起。

我的控制器。

  [HttpPost]
        公众的ActionResult指数(时间跟踪时间跟踪)
        {
            ////做这里的逻辑
            返回查看(this.ReceiveTimeTrackingData());
        }

我用了两个模式 - :
型号1

 公共类TimeTrackingDetails        {
             公共字符串项目名{获得;组; }
            公众的DateTime日期{搞定;组; }
            公共双小时{搞定;组; }
        }

模型2 -

 公共类时间跟踪    {
              公开名单<名单,LT; TimeTrackingDetails>> TimeTrakings {搞定;组; }
    }


解决方案

如果您需要的项目名称,你应该创建一个输入。现在,在你的code你有这一行只是简单的文本:

  @ Model.TimeTrakings [I] [0] .ProjectName

只需添加另一行是奥德:

  @ Model.TimeTrakings [I] [0] .ProjectName
//这条线将创造额外的隐藏输入和表单后它将被sended服务器。
@ Html.HiddenFor(X => x.TimeTrakings [I] [0] .ProjectName)

I am working on a project in dot Net + share-point, In there controller get sharepoint list record & create a list of list object. In view catch the object as one model and dilplay in a table.

Table view enter image description here

Index.cshtml

@using( Html.BeginForm() )
{
<table id = "timeTrackingView" border="1" >

    <tr>
        <th>Projects</th>
        @for (var date = @Model.Dates.AddDays(-(@Model.DateRange-1)); date <= @Model.Dates; date = date.AddDays(1))
        {
            <th >@date.Day/@date.Month/@date.Year</th>
        }

    </tr>
   @{ double[] totalForToday = new double[@Model.DateRange];}

      @for (int i = 0; i < @Model.TimeTrakings.Count; i++)
      {         
          //var projectName = @Model.TimeTrakings[i][0].ProjectName;       
        int index = 0;     
        <tr>
            <td>
                @Model.TimeTrakings[i][0].ProjectName
            </td>
            @for (int j = 0; j < Model.TimeTrakings[i].Count(); j++)
            {
                totalForToday[index] = totalForToday[index] + @Model.TimeTrakings[i][j].Hours;
                 var time = @Html.EditorFor(model => @Model.TimeTrakings[i][j]);
                <td>@time</td>
              @*@Html.EditorFor(model => @Model.TimeTrakings[i][j].Hours)*@ 

                index++;  
            }

        </tr>
    }

    <tr>
    <td>Total for day</td>
        @foreach(var tot in totalForToday)
        {
            <td>@tot</td>
        }

    </tr>    
</table>
<input type="submit" name="SubmitBtn"/>
}

I am trying to get table data into controller.. help me im my code only gettinh hours, need get project name date & hours together.

My controller.

[HttpPost]
        public ActionResult Index(TimeTracking timeTracking)
        {
            ////do the logic here 
            return View(this.ReceiveTimeTrackingData());
        }

I Used two mode-: Model1

 public class TimeTrackingDetails

        {
             public string ProjectName { get; set; }
            public DateTime Date { get; set; }
            public double Hours { get; set; }        
        }

Model 2-:

public class TimeTracking

    {
              public List<List<TimeTrackingDetails>> TimeTrakings { get; set; }
    }

解决方案

If you need project name you should create an input. Now in your code you have just plain text with this line:

@Model.TimeTrakings[i][0].ProjectName

Just add another line onder it:

@Model.TimeTrakings[i][0].ProjectName
// this line will create additional hidden input and on form post it will be sended to server.
@Html.HiddenFor(x => x.TimeTrakings[i][0].ProjectName) 

这篇关于从视图到控制器MVC通过表中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆