11

私はMVCRazorを初めて使用します。

私はこの見解を持っています:

@model SuburbanCustPortal.Models.CustomerModel

@{
    ViewBag.Title = "Customer Summary";
}

<h2>Customer Summary Screen</h2>
<p>
    Please select an account below or add an existing account.
</p>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm())
{
  @Html.ValidationSummary(true, "Account creation was unsuccessful. Please correct the errors and try again.")

  <div>
    <fieldset>
      <legend>Existing Accounts</legend>

      @Html.Action("ExistingAccounts2")

      <p>
        <input type="submit" value="Add an Account" />
      </p>


    </fieldset>
  </div>
}

このメソッドを呼び出す:

[Authorize]
public ActionResult ExistingAccounts2()
{
  return PartialView("ExistingAccounts", _client.RequestCustomersForAccount(User.Identity.Name));
}

これは、この部分ビューと呼ばれます。

@model IEnumerable<SuburbanCustPortal.SuburbanService.CustomerData >

<br />
<br />
<table>

  @if (Model != null)
  {
    foreach (var usr in Model)
    {
      <tr>      
        <td>
          <input id="btnShowCustomer" name="btnShowCustomer2" type="submit" value="View"/>           
        </td>
        <td>
          @usr.AccountId
        </td>
        <td>
          @usr.Name
        </td>
@*        <td>
          @usr.DeliveryStreet
        </td>*@
      </tr>
    }
  }

</table>
<br />

これは最終的にこれを表示します:

ここに画像の説明を入力してください

これはこの時点まで機能します。

私がしたいのは、顧客の名前の横にあるボタンをクリックして、顧客のアカウントをプルアップできるようにすることです。

その顧客をボタンに結び付けて、誰を引き上げるか、ボタンをクリックして引き上げる方法を知るにはどうすればよいですか?

4

2 に答える 2

10

ボタンがクリックされたら、顧客番号を返す必要があります。

モデルのプロパティとして顧客番号がある場合は、次のようにすることができます。

<input id="btnShowCustomer" data-customerNumber="@usr.CustomerNumber" />

POST次に、@ Html.ActionLink、@ Ajax.ActionLink、またはjQueryを使用して、このデータをサーバーに送信できます。

アクションリンク

@Html.ActionLink("LoadInfo", "Info", new {customerId=@usr.CustomerNumber})

jQuery

$("#btnShowCustomer").click(function() {

 var customerId = $("#btnShowCustomer").attr("data-customerNumber");
  $.ajax({ 
       type: "POST", 
       data: "customerId=" + customerId, 
       url: '@Url.Action("MyAction", "MyController")', 
       success: function (result) { 

       } 
 }); 
于 2012-09-07T13:32:57.217 に答える
0

これでうまくいくと思います!oidは顧客のIDになります(パスは大丈夫だとは思いません:))

@Ajax.RawActionLink("Action", "Controller", new { oid = '@Model.customerID'}, new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "the view you want to show" }, new { id = "btnNewB", @class = "your btn class" })

幸運を ;)

于 2012-09-07T13:23:19.410 に答える