2
私はタブがあるダイアログボックスを持っています。いずれかのタブには、ユーザーが入力したアドレスが表示されます。ユーザーが新しい住所を追加できるボタンもあります。ユーザーがボタンをクリックすると、現在のタブの内容が「追加」ビューに置き換えられます。Ajax.BeginFormは何をする予定ですか?
私がここで達成しようとしているのは、ユーザーがアドレスを追加できるようにすることです.OKをクリックすると、フォームはAJAX呼び出しを介して送信され、タブは「インデックス」ビュー(ユーザーのアドレスを表示)
残念ながら、それは正しく動作していません。 AJAX呼び出しでフォームを送信するのではなく、定期的なポストアクションを実行し、タブに表示するのではなく、インデックスビューを白い背景に表示します。
は、ここに私のコードです:
[HttpPost]
public ActionResult Add(AddressDto model)
{
if(!ModelState.IsValid)
{
return PartialView(model);
}
Area area = null;
if(!string.IsNullOrEmpty(model.Area))
{
area = _addressService.GetAreaByName(model.Area);
}
var newAdd = new Address
{
Details = model.Details,
Name = model.Name,
IsDefaultAddress = false,
CountryName = _addressService.GetCountryById(int.Parse(model.Country)).Name,
User = _helper.GetUserFromSession(HttpContext.User.Identity.Name)
};
if(area != null)
area.Addresses.Add(newAdd);
else
_addressService.Create(newAdd);
_unitOfWork.Commit();
var indexViewModel = PrepareIndexView();
return PartialView("Index", indexViewModel);
}
private UserLocationViewModel PrepareIndexView()
{
var nickname = this.HttpContext.User.Identity.Name;
var user = _helper.GetUserFromSession(nickname, true);
var viewModel = Mapper.Map<User, UserLocationViewModel>(user);
return viewModel;
}
そして、ここで私は、フォーム始めている方法は次のとおりです。
@using (Ajax.BeginForm("Add", "Address", new AjaxOptions { UpdateTargetId = "ui-tabs-2", InsertionMode = InsertionMode.Replace, HttpMethod = "POST" }))
は、だから私の設定が間違って何を?
ディミトロフ:ありがとうございます。それがそれでした。 – Kassem