そのため、名前、電話番号、電子メールなどの顧客に関する情報を含むテーブルがあります。このテーブルから顧客を選択するためのラジオ ボタンを持つようにテーブルを設定しました。このラジオボタンは、コントローラー メソッドから顧客の名前を取得する jQuery 関数を呼び出します。特定の顧客のイベントのビューを返す CustomerEvent コントローラーに CustomerID と CustomerName の両方を渡すための適切かつ最良の方法を探しています。AJAX POST を使用しようとすると、ビューが返されませんdata
。window.location も試しましたが、どちらも機能しません。
かみそりのコードは次のとおりです。
@Html.ActionLink("Events ", "../CustomerEvent/Index", null, new { id = "btnEventsCustomerID" })
jQuery:
jQuery('input[type=radio]').change(function () {
jQuery('#hdnCustomerID').val($(this).val());
var CustomerID = jQuery('#hdnCustomerID').val();
var CustomerName = null;
$.ajax({
url: '/Customer/GetCustomerName',
data: { id: CustomerID },
type: "GET",
async: false,
cache: false,
success: function (data) {
CustomerName = data
}
});
alert(CustomerName);
jQuery('#btnEventsCustomerID').click(function () {
window.location = "/CustomerEvent/Index/?CustomerID=" + CustomerID + "&CustomerName=" + CustomerName;
});
CustomerName アラートは正常に機能しています。Customer イベントのビューを返すためのコントローラー メソッドを次に示します。
public ActionResult Index(int CustomerID = 0, string CustomerName="")
{
if (CustomerID != 0)
{
Session["CustomerID"] = CustomerID;
Customer CustomerObj = _customer.GetCustomer(CustomerID);
Session["CustomerName"] = CustomerObj.FirstName + " "+ CustomerObj.LastName;
}
return View(_customerEvent.GetCustomerEventCustomList(CustomerID));
}