Je viens de mettre à jour VS2010 (rc) et ensuite été forcé de mettre à jour mes projets et de convertir en MVC2 (ta microsoft) ... qui a saboté la première application touchée.Erreurs MVC à MVC2
Error 2 'System.Web.Mvc.IValueProvider' does not contain a definition for
'Where' and no extension method 'Where' accepting a first argument of type
'System.Web.Mvc.IValueProvider' could be found (are you missing a using directive or an
assembly reference?) ~\Controllers\DiscountsController.cs 51 39 ODSe
Considérant que je sais que cela fonctionne dans VS2008 - MVC1 je suis un peu lancé. N'importe qui?
J'ai actuellement (inclus)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using ODSe.Models;
using System.Text;
using System.Text.RegularExpressions;
using System.Net.Mail;
Shouldnt doivent être .net 4 que le projet initial était de 3,5; et MVC2 est .net 3.5 (ASP.NET MVC 2 RC 2 offre un nouveau cadre de Model-View-Controller (MVC) au-dessus de l'ASP.NET existante 3.5 Runtime SP1.)
code Environ 51
foreach (var x in this.ValueProvider.Where(k => k.Key.StartsWith("discount.")))
{
if (String.IsNullOrEmpty(x.Value.AttemptedValue))
{
ModelState.SetModelValue(x.Key, new ValueProviderResult(ValueProvider[x.Key].AttemptedValue, collection[x.Key], System.Globalization.CultureInfo.CurrentCulture));
Discount = true;
}
}
Lorsque le code a été écrit pour MVC (1) dans VS2008 this.ValueProvider était « IDictionary ControllerBase.ValueProvider. dans MVC (2) VS2010 il jette un ajustement sifflants sur l'utilisation où que c'est apparemment bien
foreach (var x in this.ValueProvider)
{
if (x.Key.StartsWith("discount."))
{
if (String.IsNullOrEmpty(x.Value.AttemptedValue))
{
ModelState.SetModelValue(x.Key, new ValueProviderResult(ValueProvider[x.Key].AttemptedValue, collection[x.Key], System.Globalization.CultureInfo.CurrentCulture));
Discount = true;
}
}
}
Si ce n'est pas un bout de code laid; Code Legacy est très amusant
Je pense que c'est votre droit; J'ai jeté le code en haut. –