如何传递字符串对象数据到mvc控制器张贴
本文关键字:mvc 控制器 张贴 数据 何传递 字符串 对象 | 更新日期: 2023-09-27 18:12:01
这是我的代码
<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 };
}
在上面的代码中,当我点击保存按钮数据传递创建函数在js中,然后整个数据转换为字符串并传递给mvc控制器,但dynamic user
得到对象,现在如何反序列化和存储到webapi。
- 所以你在这里有两个选择,1)你应该使用razor cshtml代替对于html,它将使您的生活更加轻松。下面的链接将帮助你。http://blog.michaelckennedy.net/2012/01/20/building-asp-net-mvc-forms-with-razor/
- 如果你想使用现有的html代码:a)你必须使所有字段的名称与你的类对象变量相同,当服务器端c#代码在表单提交后获得控制时,它将自动解析为对象。b)将c#表单提交处理函数的参数改为FormCollection
以下链接将帮助您,ASP。. MVC 3 Razor:将数据从视图传递到控制器
反序列化:
var json = JsonConvert.DeserializeObject<dynamic>(sampleJson);
var data = ((JObject)json.data).Children();
用动态对象反序列化JSON
让你的HTML代码像这样,使用Razor语法
@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");
}
编辑:这个方法我在ASP中使用过。. NET MVC 5在Visual Studio社区版2013上。