ASP中使用ng-repeat的提交表单.净MVC

本文关键字:提交 表单 MVC ng-repeat ASP | 更新日期: 2023-09-27 18:16:49

我在使用angularJS时遇到了一些麻烦,当我提交数据时,它总是空的,我使用ng-repeat显示该数据,如下所示:

@using (Ajax.BeginForm("UpdateTasks", "Revision", FormMethod.Post, new AjaxOptions { OnSuccess = "OnSaveSuccess" @*, OnBegin="ValidateForm"*@} ,  new { @id = "participantForm", @class = "form-validation-1" }))
{
<div ng-app="myApp">
<div id="idiv">
<table id="tbl" name="tbl" ng-controller="myCtrl" border="1" style="color:black">
   <tr>
      <th> Task</th>
   </tr>
   <tr ng-repeat="x in records">
       <td><input type="text" ng-model="x.Question" class="form-control"></td>
   </tr>
</table>
  <input class="btn m-r-5" type="submit" value="Save" />

这是我的控制器

  [HttpPost]
        public JsonResult UpdateTasks(object tasks)
        {
var tsk = tasks ;
            return Json(new { isError ="" }, JsonRequestBehavior.AllowGet);
        }

但是对象任务总是空的,我错过了什么?

ASP中使用ng-repeat的提交表单.净MVC

你可以试试这个,首先获取对象中的所有数据,然后使用ng-repeat以html形式显示数据/信息。

<table>
 <tr ng-repeat="x in records">
    <td>{{ x.Name }}</td>
    <td>{{ x.Country }}</td>
</tr>

你的代码有很多问题。让我们一个一个地开始。

    使用angularjs $http service将数据发送到你的服务器。使用angularjs和razor发布数据没有什么意义。
  • 创建一个与你从客户端发布的属性匹配的模型,并在控制器动作中使用它,而不是"对象"类型。MVC模型绑定器自动映射并填充字段。

关于您的实际问题,这是因为您没有将name属性与输入字段关联。试试这样的东西,如果你需要进一步的指示,请告诉我:)

<div ng-app="myApp">
<div id="idiv">
<table id="tbl" name="tbl" ng-controller="myCtrl" border="1" style="color:black">
   <tr>
      <th> Task</th>
   </tr>
   <tr>
       <td ng-repeat="x in records">
         <input name="{{x.Question}}" type="text" ng-model="x.Question" class="form-control">
     </td>
   </tr>
</table>
  <input class="btn m-r-5" type="submit" value="Save" />