Я создал функцию расширения для UrlHelper, которая упрощает запись параметров. Он просто принимает два строковых параметра и возвращает строку желаемого формата. В моем случае это работает так:Как решить ошибку «ошибка недействительного анонимного типа»
public static string CustomAction(this UrlHelper helper, string key, string value)
{
return HttpUtility.UrlEncode("(" + key + "=" + value + ")");
}
Проблема я столкнулся сейчас, когда я использую эту функцию внутри URL.ACTION больше, чем когда-то он дает мне ошибку «неверный анонимный пользователь типа замедлитель». Может кто-нибудь сказать мне, как я могу решить эту проблему?
Пример:
Url.Action("someAction", "someController", new { where = Url.CustomWhereAction("user.ID", Url.UrlParams("id")), Url.CustomWhereAction("person.ID", Url.UrlParams("id")) })
Просто для уточнения:
Url.UrlParams()
другая функция, которая позволяет избежать выдвижения программиста, чтобы написать код для извлечения значения routeData.
Поскольку ошибка пытается сказать вам, ваш синтаксис не имеет смысла. Какое имя свойства вы пытаетесь создать? – SLaks
Не пытайтесь поместить все это на одну строку; как минимум, добавить разрывы строк в соответствующих местах. Если вы это сделаете, ваша синтаксическая ошибка должна стать более очевидной. Если этого недостаточно, разделите его на несколько операторов. Чем меньше утверждение, тем меньше вероятность того, что у вас будут синтаксические ошибки, и тем легче их найти. – Servy
Ну, я нашел проблему, я должен дать свойство какое-то имя. Вроде: новый {where = Url.CustomWhereAction ("user.ID", Url.UrlParams ("id")), AND = Url.CustomWhereAction ("person.ID", Url.UrlParams ("id")) } – Capri82