Вопрос об использовании нового {} - PullRequest
3 голосов
/ 17 марта 2011

В настоящее время я работаю над книгой Apress ASP.NET MVC2, и меня немного смущает вопрос о пользователе new {returnUrl} в следующем коде:

public RedirectToRouteResult RemoveFromCart(Cart cart, int productID, string returnUrl)
{
    Product product = productsRepository.Products.FirstOrDefault(p => p.ProductID == productID);
    cart.RemoveLine(product);
    return RedirectToAction("Index", new { returnUrl });
}

Это связано с созданием новой строки, а не просто передачей ссылки на переданный параметр?

Ответы [ 4 ]

12 голосов
/ 17 марта 2011

Создается анонимный тип со свойством returnUrl, которое также имеет значение из returnUrl. Вот так:

var anon = new { returnUrl = returnUrl };
return RedirectToAction("Index", anon);

Использование имени из выражения для определения имени свойства в анонимном типе называется инициализатором проецирования .

Помогает ли это вам вообще объяснить? Если нет, вы можете пересмотреть анонимные типы в целом. Они были введены в C # 3, в основном для LINQ.

0 голосов
/ 17 марта 2011

Этот синтаксис создает анонимный тип. Они создаются на лету по мере необходимости. В вашем примере он создает новый объект с одним свойством, а затем передает его действию в качестве параметра.

0 голосов
/ 17 марта 2011

Это анонимный объект.Свойство в вышеприведенном случае создаст новый объект со строковым свойством returnUrl.

В этом контексте он указывает URL-адрес для ActionResult, на который должен перенаправить браузер.

0 голосов
/ 17 марта 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...