MVC3 Заполнить 'Создать' Представление для связанного объекта - PullRequest
0 голосов
/ 04 февраля 2011

Связанный пост: Заполнение поля выбора в форме с использованием связанного идентификатора в MVC3

У меня есть ListView, созданный с использованием MVC3 и ADO.NET Linq-to-Entities.

Мне удалось создать простое представление списка с помощью команды «Создать» и «Редактировать» для создания «связанного объекта».

 @Html.ActionLink("Create Shipping Profile", "../PrintProfile/Create", new { id = item.ProductId }) |
 @Html.ActionLink("Edit Shipping Profile", "../PrintProfile/Edit", new { id = item.ProductId })

Когда я создаю 'PrintProfile' Я хочу, чтобы представление «Создать» было «предварительно заполнено» с помощью «ProductId» (который является отношением таблицы базы данных), чтобы я мог создать профиль и редактировать связанный профиль.для каждого элемента в списке.

Вот Создать контроллер для PrintProfile:

    public ActionResult Create(int ProductId)
    {
        var entities = new CS_ShippingProfiles();
        entities.ProductId = ProductId; // Assign the ProductId I want to 'create'
        return View(entities);
    }

    [HttpPost]
    public ActionResult Create(CS_ShippingProfiles Profile)
    {
        if (ModelState.IsValid)
        {
            var entities = new LabelServiceEntities();
            entities.AddToCS_ShippingProfiles(Profile);
            entities.SaveChanges();

            return Redirect("/Products");
        }
        return View(Profile);
    }

Но когда я перехожу по ссылке, я получаю 'Null'исключение параметра!Что я делаю не так?!

1 Ответ

1 голос
/ 04 февраля 2011

Ваш параметр действия в действии Create называется ProductId, поэтому убедитесь, что вы генерируете правильные ссылки:

@Html.ActionLink(
    "Create Shipping Profile", 
    "Create", 
    "PrintProfile", 
    new { ProductId = item.ProductId }, 
    null
) 
|
@Html.ActionLink(
    "Edit Shipping Profile", 
    "Edit", 
    "PrintProfile", 
    new { ProductId = item.ProductId }, 
    null
)

Также обратите внимание, как указываются контроллер и действия вместо использования некоторых относительных URL-адресов приделать (../PrintProfile/Create).

...