我想打電話給MarriageById
如GET,像這樣:ASP.NET核心:從GET重定向到POST
var url = '/MarriageById?id=' + id;
但我也希望有一個單一的ActionResult Marriage(Marriage marriage)
是顯示視圖之前進行一些處理。第二個必須是POST
,因爲它也會收到來自asp的「發送表單」。
我想this solution(見下面我自己的實現),但它仍然重定向爲GET和ActionResult Marriage
未發現:
[HttpGet]
public ActionResult MarriageById(int id)
{
var marriage = _marriageRepository.GetById(id);
return RedirectToAction(nameof(Marriage), marriage);
}
[HttpPost]
public ActionResult Marriage(Marriage marriage)
{
var people = _personRepository.GetAll();
ViewBag.men = Utils.GetPersonsSelectListByGender(people, isMale: true);
ViewBag.women = Utils.GetPersonsSelectListByGender(people, isMale: false);
return View(marriage);
}
我用'RedirectToAction',而不是'返回婚姻(婚姻);'因爲它然後去找到MarriageById'的'了'View'(而不是'Marriage')。當然,如果您將基礎視圖返回修復爲'return View('Marriage');',那麼可以解決這個問題。但是我搜索了一下,人們推薦'RedirectToAction',我想我在這之後會混淆一些概念。感謝您的詳細解答,將其標記爲已解決,因爲它提供瞭解決方案,而不僅僅是信息。 –