在剃刀@ Url.Action链接中使用来自ng-reapt的Angular Id值

时间:2017-06-11 15:52:40

标签: c# angularjs asp.net-mvc razor

我正在尝试从View中的链接传递值到我的控制器操作:

控制器:

public ActionResult Details(DetailsViewModel vm)
{
    if (vm.CarId == 0 || vm.Email == null)
    {
        return RedirectToAction("Index","Error");
    }

    return View(vm);
}

型号:

public class DetailsViewModel
{
    public int CarId { get; set; }

    public string Email { get; set; }   
}

问题是CarId是通过ng-repeat中的绑定显示的Angular值 - 例如{{item.id}}

因此,如何在链接中获取CarID?

<a href="@Url.Action("Details", "Cars", new { @CarID = ??, @Email = ViewBag.Email })" class="btn btn-primary btn-sm">Book Car Now</a>

1 个答案:

答案 0 :(得分:2)

我相信,因为在服务器呈现Url.Action调用之后会编译angular,所以您将无法将客户端信息传递给Url.Action调用。这是否适用于您的解决方案:

<a href="@Url.Action("Details", "Cars")?CarId={{item.Id}}&Email=@ViewBag.Email" class="btn btn-primary btn-sm">Book Car Now</a>