MVC3のモデルバインディングを使用し、Razorを使用してすべての顧客をforeachループでレンダリングすると、顧客の検索結果ページに顧客のリストがバインドされます。私の質問は、どのようにして顧客のオブジェクトをアクションに戻して、細部をもう一度フェッチする必要がないかということです。以下はMVCモデルの複合型をアクションパラメータにバインドする
は私のアクションメソッドのシグネチャである:
public ActionResult BasketAddCustomer(Customer customer)
Customerオブジェクトは、つまり、非常に大きいです。たくさんのフィールド
以下は、各顧客を表示し、それぞれのボタンを選択するビューの縮小バージョンです。
@model WebUI.Models.SearchModel
@foreach (var customer in Model.Customers)
{
<h5>@customer.FirstName @customer.LastName</h5>
<button onclick="window.location.href = '@Url.Action("BasketAddCustomer", "Cust", customer)';">Select customer</button>
}
この問題は、アクションに渡された顧客がヌルでいっぱいであるように見えることが原因であると考えられます。
@ URL.Actionによってレンダリングされるhtmlは、以下の通りであり、良いスタートのように見えますが、すべてではなく、いくつかの顧客フィールドしかありません。顧客はこのように崩壊するにはあまりにも複雑すぎますか?それを行うより良い方法はありますか? @のurl.actionと私の知識を1として
<button onclick="window.location.href =
'/Test/Cust/BasketAddCustomer?BirthDate=01%2F01%2F0001%2000%3A00%3A00&PrimaryEmailFlag=False&PrimaryEmailDate=01%2F01%2F0001%2000%3A00%3A00&PrimaryEmailID=0&PrimaryPhoneFlag=False&PrimaryPhoneDate=01%2F01%2F0001%2000%3A00%3A00&PrimaryPhoneID=0&WifiConnected=False';" >Select customer</button>
あなたが唯一の顧客のIDとあなたの行動にあなたはidが渡さ使用してDBから顧客を選択するか、オブジェクトを渡すために、AJAX要求を使用することができますを渡すことができ –
はいああ、AJAXリクエストはおそらくそれを行う方法です、多くのありがとう。 – user2145210