使用Ajax.ActionLink获取所选行的ID

时间:2017-05-17 21:17:26

标签: c# jquery ajax asp.net-mvc

我有一个看起来像的视图:

          @foreach (var car in Model)
            {
            <tr>
                <td>
                    @car.ID
                </td>
                <td>
                    @car.carMake
                </td>
                <td>
                    @car.carModel
                </td>
                <td>
                    <div id="result"></div> //update result based on ID

                </td>
                <td>
                 Check for @Ajax.ActionLink(
                               @car.carMake,
                               "getUpdate",
                               "Home",
                               new { ID = car.ID },
                               new AjaxOptions
                                {
                               UpdateTargetId = "result", //use car.ID here? not sure
                               InsertionMode = InsertionMode.Replace,
                               HttpMethod = "Get"
                                })                      
                </td>
            </tr>
            }

我尝试做的是获取所选汽车的ID,并仅使用部分视图中的数据更新该行,例如:如果有3辆车

Car ID | Car Make | Car Model | result   | Get car updates
1          VW          Polo               (Ajax actionlink)       
2          BMW         3                  (Ajax actionlink)
3          Ford        Focus              (Ajax actionlink)

如果我单击BMW的操作链接,我希望仅使用部分视图操作更新该行。我尝试过使用JQuery:

ID = $('#car_ID').val(); on a @Html.HiddenFor(model => car.ID)

但它不断获得第一辆车的ID。不确定我会怎么做。

我已经看到了这一点:dynamic update target id in Ajax.ActionLink但是还没有工作。

1 个答案:

答案 0 :(得分:0)

这很有效。请让我知道您的想法,以及是否还需要其他任何工作来完成您的工作。 这是你如何做到的。这是您的部分视图(_PartialView.cshtml):

Count

这是您的控制器/型号:

model Testy20161006.Controllers.CarModel

<div>
    Updated Row: @Html.Raw(Model.CarId), @Html.Raw(Model.CarMake), @Html.Raw(Model.theCarModel) 
</div>

以下是您的观点:

 public class CarModel
{
    public int CarId { get; set; }
    public string CarMake { get; set; }
    public string theCarModel { get; set; }
}

public class HomeController : Controller
{
    public PartialViewResult getUpdate(int carId)
    {
        CarModel carModel = new CarModel();
        switch (carId)
        {
            case 1:
                carModel.CarId = 1;
                carModel.CarMake = "updated11111Make";
                carModel.theCarModel = "updated11111Model";
                break;
            case 2:
                carModel.CarId = 2;
                carModel.CarMake = "updated2Make";
                carModel.theCarModel = "updated22222Model";
                break;
            case 3:
                carModel.CarId = 3;
                carModel.CarMake = "updated3Make";
                carModel.theCarModel = "updated33333Model";
                break;
            default:
                break;
        }
        return PartialView("_PartialView", carModel);
    }

    public ActionResult Index700()
    {
        IList<CarModel> carModelList = Setup();
        return View(carModelList);
    }