我有一个看起来像的视图:
@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但是还没有工作。
答案 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);
}