[英]ASP.NET MVC. Multiple results from the same repository in one View
[英]ASP.NET MVC. Error calling action + repository from jQuery
我試圖通過使用jQuery .load
在模式中顯示ViewModel,不幸的是,嘗試這樣做時出現錯誤500,因為在創建模式窗口時,它向存儲庫發送了空的ViewModel。 我如何避免這種情況? 這是View中的jQuery:
<script>
$(function () {
$('#myModal').on('shown.bs.modal', function (e) {
$('#content').load('/Home/Create');
});
});
</script>
這是控制器:
public ActionResult Create(AddRecordViewModel addrecord)
{
if (addrecord != null)
{
_recordRepositiory.AddMessage(addrecord);
}
return RedirectToAction("Index", "Home");
}
因此,這里存儲庫:
public void AddMessage(AddRecordViewModel model)
{
var userip = HttpContext.Current.Request.UserHostAddress;
var useragent = HttpContext.Current.Request.UserAgent;
var a = new Users
{
UserName = model.UserName,
Email = model.Email
};
_db.Users.Add(a);
_db.SaveChanges();
var b = new Messages
{
Message = model.Message,
UserId = a.Id,
UserAgent = useragent,
UserIP = userip,
Added = DateTime.Now
};
_db.Messages.Add(b);
_db.SaveChanges();
}
您的控制器應具有2個create方法-一個動作僅返回裝飾有[HttpGet]屬性的視圖,另一個則接受viewmodel並具有[HttpPost]屬性。 您的DAL邏輯適用於后者。
例:
[HttpGet]
public ActionResult Create()
{
return View("Create", new AddRecordViewModel());
}
[HttpPost]
public ActionResult Create(AddRecordViewModel addrecord)
{
if (addrecord != null)
{
_recordRepositiory.AddMessage(addrecord);
}
return RedirectToAction("Index", "Home");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.