¿Hay alguna forma de dividir un en un FormCollection
que contenga solo aquellas teclas que comienzan con una cierta cadena?Cortando un FormCollection por teclas que comienzan con una cierta cadena
(Esta pregunta es básicamente el mismo que this-> pero para C#/FormCollection en lugar de pitón Slicing a dictionary by keys that start with a certain string)
Esto es lo que me ocurrió a evitar el problema:
public ActionResult Save(FormCollection formCollection) {
var appSettings = new Dictionary<string, string>();
var appKeys = formCollection.AllKeys.Where(k => k.StartsWith("AppSettings."));
foreach (var key in appKeys)
{
appSettings[key] = formCollection[key];
}
...
Editar: El problema con este código, es que tengo que hacerlo varias veces para diferentes cadenas de StartsWith, y por lo tanto necesitaré crear un método de 'utilidad' para hacer lo anterior. Sería bueno si se podía leer en una línea como:
formCollection.Where(k=>k.Key.StartsWith("AppSettings.");
de fondo (no es necesario para resolver el problema): El contexto es asp.net mvc, y de una forma con un diccionario dinámico campos.
También es similar a esta pregunta - Return FormCollection items with Prefix - pero no es lo mismo.
Y habiendo leído esta respuesta How to build C# object from a FormCollection with complex keys - Empecé a preguntarme si sería mejor que no utilizara formularios, sino que enviara JSON.
¿Qué problema tiene el código que tiene? –
Tenga en cuenta que siempre debe describir el * problema *. Aquí parece que dices "estoy haciendo algo, y así es como lo estoy haciendo. ¿Hay alguna manera de hacerlo?", Pero sin decirnos por qué tu solución actual * no es agradable *. –
Gracias, he editado la pregunta para decir por qué no es agradable (con la palabra "Editar" para que no parezca que no te quejas de nada) – PandaWood