如何解决来自响应的 ASP.NET Core MVC 空对象
我在使用这段代码时遇到了一些问题,我以前使用过类似的东西并且正在工作,但我不知道为什么。每次我点击提交对象消息都为空时,提交到数据库中的唯一值是我在控制器中添加的值,例如日期,我对 ASP.NET 了解不多,不知道为什么会这样在谷歌上寻找自己的失败或正确的术语
型号
public class Message {
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("date")]
public string Date;
[BsonElement("sender")]
public string Sender;
[BsonElement("body")]
public string Body;
[BsonElement("type")]
public string Type;
[BsonElement("subject")]
public string Subject;
}
控制器
[HttpPost]
public IActionResult Write(Message msg) {
Mongo.Instance.InsertMessage(new Message() {
Subject = msg.Subject,Body = msg.Body,Date = DateTime.Now.ToString("dd/MM/yyyy"),Type = msg.Type,Sender = "None"
});
return RedirectToAction("Index","Home");
}
表格
@using (Html.BeginForm("Write","CCG",FormMethod.Post)) {
<div class="form-group">
<p>Subject</p>
@Html.TextBoxFor(model => model.Subject)
</div>
<div class="form-group">
@{
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem() {
Text = "Petition",Value = "petition"
});
items.Add(new SelectListItem() {
Text = "Congratulate",Value = "congratulate"
});
items.Add(new SelectListItem() {
Text = "Offer",Value = "offer"
});
}
@Html.DropDownListFor(model => model.Type,items)
</div>
<div class="form-group">
<p>Body</p>
@Html.TextAreaFor(model => model.Body)
</div>
<input type="submit" value="Send" />
}
解决方法
我很确定您需要通过添加 get
和 set
方法将这些字段变成属性。
例如
public class Message {
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("date")]
public string Date { get; set; }
[BsonElement("sender")]
public string Sender { get; set; }
[BsonElement("body")]
public string Body { get; set; }
[BsonElement("type")]
public string Type { get; set; }
[BsonElement("subject")]
public string Subject { get; set; }
}
,
为 API 对象创建模型类时,请确保始终具有 getter 和 setter。 :) 快乐编码
public class Activity
{
public Guid Id { get; set; }
public string ActivityName { get; set; }
public string ActivityDescription { get; set; }
public string ActivityLink { get; set; }
public string ActivityVenue { get; set; }
public bool IsActive { get; set; }
public DateTime DateCreated { get; set; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。