#c# #nancy
#c# #Нэнси
Вопрос:
У меня есть довольно простой проект, который я начал с Nancyfx. Я знаю, что он больше не поддерживается, но, похоже, он должен удовлетворять мои минимальные потребности в его нынешнем виде.
Я раньше не пробовал использовать Нэнси, и я признаю, что существует довольно много рамок, которые кажутся мне вудуистскими, так что я, возможно, упускаю что-то довольно простое.
Одним из первых препятствий, с которыми я столкнулся, является извлечение данных формы из сообщения. Я могу предоставить html-код для формы, но когда форма отправлена, я помещаю точку останова в свою функцию ответа, и параметр, переданный в функцию, является просто пустым словарем. Вот соответствующая часть моего класса модуля:
public class MainModule : NancyModule { public MainModule() { Get("/", _ =gt; { return View["views/Configuration.html"]; }); Post("/saveChanges", args =gt; SaveChanges(args)); } private object SaveChanges(dynamic args) { ConfigurationData receivedData = args.Bindlt;ConfigurationDatagt;(); return "Data received"; } }
И класс, к которому я пытаюсь привязаться:
internal class ConfigurationData { public string SAPServer { get; set; } public bool SAPUseIntegratedSecurity { get; set; } public string SAPuser { get; set; } public string SAPpwd { get; set; } }
А вот связанная форма из html:
lt;form action="/saveChanges" method="post"gt; lt;!-- Tab links --gt; lt;div class="tab"gt; lt;button class="tablinks" onclick="tabSelect(event, 'Databases')"gt;Databaseslt;/buttongt; lt;button class="tablinks" onclick="tabSelect(event, 'Defaults')"gt;Defaultslt;/buttongt; lt;/divgt; lt;!-- Tab content --gt; lt;div id="Databases" class="tabcontent"gt; lt;div class="row"gt; lt;div class="column"gt; lt;fieldsetgt; lt;legendgt;SAP Interfacelt;/legendgt; lt;label for="SAPserver"gt;Server:lt;/labelgt; lt;input type="text" id="SAPServer" name="SAPServer"gt;lt;brgt;lt;brgt; lt;label for="SAPUseIntegratedSecurity"gt;Use Integrated Security:lt;/labelgt; lt;input type="checkbox" checked="checked" id="SAPUseIntegratedSecurity" name="SAPUseIntegratedSecurity" value="true"gt;lt;brgt;lt;brgt; lt;label for="SAPuser"gt;Username:lt;/labelgt; lt;input type="text" id="SAPuser" name="SAPuser"gt;lt;brgt;lt;brgt; lt;label for="SAPpwd"gt;Password:lt;/labelgt; lt;input type="password" id="SAPpwd" name="SAPpwd"gt;lt;brgt;lt;brgt; lt;/fieldsetgt; lt;/divgt; lt;/divgt; lt;/divgt; lt;input type="submit" value="Save Changes" /gt; lt;/formgt;
Я устанавливаю точку останова в функции SaveChanges. Он вызывается, но параметр args не содержит kvps.
Что я здесь делаю не так?