C# 如何将字符串对象数据传递给mvc控制器进行过帐?

C# 如何将字符串对象数据传递给mvc控制器进行过帐?,c#,angularjs,asp.net-mvc-5,C#,Angularjs,Asp.net Mvc 5,这是我的密码 <form class="form-horizontal formtext col-xs-12 col-sm-10 col-lg-10 row"> <div class="form-group"> <div class="col-xs-12 col-sm-5 col-lg-3 paddnone"> <label class="control-label">First Name</label

这是我的密码

<form class="form-horizontal formtext col-xs-12 col-sm-10 col-lg-10 row">
<div class="form-group">
        <div class="col-xs-12 col-sm-5 col-lg-3 paddnone">
            <label class="control-label">First Name</label>
        </div>
        <div class="col-sm-5" ng-if="!newRecord">
            <input type="text" class="form-control" ng-model="userDetails.firstname" />
        </div>
        <div class="col-sm-5" ng-if="newRecord">
            <input type="text" class="form-control" ng-model="userDetails.firstName" />
        </div>
    </div>
    <div class="form-group">
        <div class="col-xs-12 col-sm-5 col-lg-3 paddnone">
            <label class="control-label">Last Name</label>
        </div>
        <div class="col-sm-5" ng-if="!newRecord">
            <input type="text" class="form-control" ng-model="userDetails.lastname" />
        </div>
        <div class="col-sm-5" ng-if="newRecord">
            <input type="text" class="form-control" ng-model="userDetails.lastName" />
        </div>

    </div>
    <div class="form-group">
        <div class="col-xs-12 col-sm-5 col-lg-3 paddnone">
            <label class="control-label">Email Id</label>
        </div>
        <div class="col-sm-5" ng-if="!newRecord">
            <input type="text" class="form-control" ng-model="userDetails.emailid" />
        </div>
        <div class="col-sm-5" ng-if="newRecord">
            <input type="text" class="form-control" ng-model="userDetails.emailId" />
        </div>
    </div>
    <div class="col-xs-12 col-sm-9 col-lg-7  btnbg">
            <button class="btn btn-primary " ng-click="create(userDetails)">
            SAVE
            </button>
            <button class="btn btn-primary ">
                Cancel
            </button>
        </div>

       $scope.create = function (userDetails) {
        var userData = angular.toJson(userDetails);
        return dataFactory.post("/Usercontroller/Save", userData)
        .then(function (result) {
           alert("save successfully"); 

        });

     public class UserDataModel 
     {
      public UserDataModel ();
      public Dictionary<string, string> Data { get; set; }
     public string FormName { get; set; }
     }
     public async Task<JsonNetResult> SaveUser(string applicationId, dynamic user)
     {
        Dictionary<string, string> dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(user);
         UserDataModel userDataModel = new UserDataModel ();
        //userDataModel .Data = dict;
        userDataModel.FormName  = "one";
        userDataModel = await Post<UserDataModel>(new UserDataModel{ Data = dict });
        return new JsonNetResult { Data = userDataModel  };
      }

名字
姓
电子邮件Id
拯救
取消
$scope.create=函数(userDetails){
var userData=angular.toJson(userDetails);
返回dataFactory.post(“/Usercontroller/Save”,userData)
.然后(函数(结果){
警报(“保存成功”);
});
公共类UserDataModel
{
公共UserDataModel();
公共字典数据{get;set;}
公共字符串FormName{get;set;}
}
公共异步任务SaveUser(字符串applicationId,动态用户)
{
Dictionary dict=JsonConvert.DeserializeObject(用户);
UserDataModel UserDataModel=newuserdatamodel();
//userDataModel.Data=dict;
userDataModel.FormName=“一”;
userDataModel=wait Post(新的userDataModel{Data=dict});
返回新的JsonNetResult{Data=userDataModel};
}
在上面的代码中,当我单击save按钮data pass在js中创建函数时,整个数据转换成字符串并传递给mvc控制器,但是
动态用户
得到了对象,现在如何反序列化并存储到webapi

  • 所以这里有两个选项,1)应该使用razor cshtml 对于html,它将使您的生活变得轻松。以下链接将帮助您。
  • 如果要使用现有的html代码: a) 您必须使所有字段的名称与类对象变量相同,当服务器端c#code在表单提交后获得控件时,它将自动将其解析为对象。 b) 将c#表单提交处理程序函数的参数设置为FormCollection
  • 以下链接将帮助您,

    反序列化:

         var json = JsonConvert.DeserializeObject<dynamic>(sampleJson);
    var data = ((JObject)json.data).Children();
    
    var json=JsonConvert.DeserializeObject(sampleJson);
    var data=((JObject)json.data).Children();
    

    使用Razor语法编写如下HTML代码

    @using (Html.BeginForm("Upload", "ModelClass")
    {
        @Html.ValidationSummary(true)
    
        //HTML elements which are based on your model class members.
    
    }
    
    在控制器类方法中,它会将此表单数据发送到Upload方法

    [HttpPost]
    public ActionResult Upload(ModelClass model) 
    {
        //Send model to the model object to Model class for processing
    
        return RedirectToAction("Upload");
    }
    

    编辑:我在Visual Studio community edition 2013上的ASP.NET MVC 5中使用过这种方法。

    你可以使用razor,所以你觉得舒服吗?还是我应该发布html版本的答案?仅使用angularjs发布我的答案,希望对你有所帮助