2012-07-05 2 views
0

У меня возникла проблема с передачей параметров из моего представления в мое всплывающее окно.MVC - Передача параметров из вида в всплывающее окно

На мой взгляд, у меня есть следующий код бритву, чтобы вынести Действие ссылку, где, когда я нажимаю его, всплывающее окно:

@Html.ActionLink("[Edit Product]", "Edit", "Products", new { ProductCode = @Model.ProductCode}, new { @class = "editLink" }) 

Я не совсем уверен, что это правильно или если часть new { ProductCode = @Model.ProductCode} имеет смысл (пожалуйста, объясните мне, что делает эта часть, кто-то хихи).

Во всяком случае, мой всплывающий код принимает параметр, как это:

@model MySuperStore.Models.ViewModel.ProductsModel

Всякий раз, когда я пытаюсь отобразить ProductCode через @Mode.ProductCode, я всегда получаю ошибку о том, ссылка не указывает на экземпляр объект.

Я попытался разместить ProductCode в ViewData через MainView и получить к нему доступ во всплывающем окне, но это тоже не работает.

Может кто-нибудь, пожалуйста, помогите мне? Благодарю. Ура!

ответ

1

Ваш код выглядит отлично:

@Html.ActionLink(
    "[Edit Product]", 
    "Edit", 
    "Products", 
    new { ProductCode = Model.ProductCode }, 
    new { @class = "editLink" } 
) 

Просто убедитесь, что вид вы ставите этот код в сильно типизированных и что действия контроллера, вынесшим это прошло реальную модель для него.

Насколько Edit действие обеспокоен вы также должны убедиться, что вы призываете вы передаете непустой модели к виду:

public ActionResult Edit(int productCode) 
{ 
    ProductsModel model = ... fetch your model using the productCode 
    return View(model); 
} 

Теперь внутри Edit.cshtml зрения (или частичный вид, если вы открытие этого с помощью диалогового окна JQuery UI или что-то в всплывающем) вы могли бы использовать свойство модели:

@model ProductsModel 
@Html.DisplayFor(x => x.ProductCode)