単純なCreateプロセスを実行できるように、コントローラに2つのパラメータを渡そうとしています。Html.Actionlinkは、両方のパラメータをコントローラに渡すことはできません - null可能なint例外
私ActionLinkのは、次のとおりです。アクションリンクをクリックしたURLがONL最初のIDはなく、このような状の第2の提供ところが
[Route("{customerId}/{id}")]
public ActionResult Create(int id, int customerId)
{
if (customerId == 0)
{
return HttpNotFound();
}
var customer = _context.Customers.Single(c => c.Id == customerId);
if (customer == null)
{
return HttpNotFound();
}
var viewModel = new CreateErroneousBillViewModel
{
Id = id,
CustomerId = customer.Id,
};
return View("CreateErroneousBillForm", viewModel);
}
:
をHtml.ActionLink("New EB", "Create", "Erroneous", new { id = Model.Id, customerId = Model.Customer.Id }, htmlAttributes: null)
私のコントローラがあります
http://localhost:65339/Erroneous/Create/24/
ここで、24は顧客のIDです
私はそれが
http://localhost:65339/Erroneous/Create/24/1
1のようなものを提供するべきだと思う一方、同上
すべてのヘルプ感謝は、今しばらくの間、この上で、私の頭を悩まれています。
編集:私はまた、これもうまくいきませんでしたモデル
Html.ActionLink("New EB", "Create", "Erroneous", new { id = 1, customerId = 24 }, htmlAttributes: null)
からNULL値を排除するために絶対値を設定しようとした
。あなたはHtml.ActionLinkを呼び出すときに、すべての まずこのdataAnotationを削除[ルートは( "{はcustomerId}/{ID}")] 、その後、( "新EB" は、「作成:
Model.Customer.Idがnullではありませんか? – Usman
リンクを絶対値を含むように変更しようとしましたが、それでも同じ問題が発生します。私はid = 1、customerId = 24.これを私の元の質問の一部として追加しました。ありがとう! –
あなたの質問は、私が従来のルーティングと属性ルーティングを使用するときに有効です。私は期待通りの結果を得ます。/ 24/1 – Usman