Pregunta

Antes de utilizar MVC 2 RC que estaba usando MVC 1, el código que se utiliza para actualizar mi objetivo en mi controlador fue la siguiente:

TryUpdateModel(entity, null, null, new[] { "Name", "Controller" });

Yo era capaz de probar la unidad esta acción del controlador simplemente usando esto en mi prueba:

controller.ValueProvider = myFormCollection.ToValueProvider();

Después de migrar el código para MVC 2 esto ya no funciona. Se guarda el fallar en la implementación del método GetValue en FormCollection, porque verifica que el valor que está pidiendo por no es nulo o vacío. La cosa es que este código funciona en tiempo de ejecución, pero no en mi unidad de prueba. No estoy usando un prefijo, así que estoy enviando NULL como un valor de prefijo.

He mirado en el código fuente RC MVC 2 y el primer valor de la ValueProvider del controlador busca es el prefijo, por lo que falla terriblemente. Lo proveedor tengo para asignar a controller.ValueProvider para que pueda trabajar en mi unidad de prueba?

Editar :? Hacer que sea muy brevemente, ¿cómo le digo a TryUpdateModel NO use un prefijo en mi prueba de la unidad de modo que no lanza una excepción

Gracias!

¿Fue útil?

Solución

error conocido en MVC 2 RC, se fija para la siguiente gota.

Desde un correo electrónico por separado sobre este tema:

  

Por cierto, mientras que la unidad que prueba   puede ser que desee utilizar el   Tipo SimpleValueProvider. (Puede ser   encontrado en el proyecto de prueba de unidad MVC, por lo   se puede copiar a su propio proyecto si   que desea.) Es, literalmente, sólo una   Diccionario que también   implementa IValueProvider. Esto sería   ser más útil si se desea almacenar   valores como { "foo", 42} en lugar de   { "Foo", "42"} para la unidad de pruebas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top