У меня есть форма внутри блока <asp:Content>
, который передается в контроллер. Для одного из элементов управления мне нужно получить некоторую информацию напрямую, что не произойдет автоматически, позвонив по номеру UpdateModel()
.
Однако в словаре Request.Form
идентификатор элемента управления имеет искаженную форму ctl00$ContentPlaceHolder${name}
. Учитывая, что я нахожусь в контроллере и ничего не знаю о представлении на данный момент, каков правильный способ доступа к данным элемента управления?
Вот как выглядит представление (.aspx) (удален посторонний код):
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Admin.Master" AutoEventWireup="true"
CodeBehind="...." Inherits="...." %>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder" runat="server">
<form id="form1" action="..." method="post">
<FCKeditorV2:FCKeditor ID="AuthorBio" runat="server" Height="250"/>
<input type="submit" value="Save" />
</form>
</asp:Content>
Элемент управления с именем AuthorBio
отображается в контроллере в словаре Form.Request
как ctl00$ContentPlaceHolder$AuthorBio$
Причина, по которой я пытаюсь использовать сторонний элемент управления с "runat-server", заключается в том, что мне нужно установить значение редактора следующим образом:
AuthorBio.Value = HttpUtility.HtmlDecode(ViewData.Model.Bio);
Попытка сделать это в файле .aspx в теге FCKeditorV2 не работает. (А может я и там что-то упускаю)
Хорошо, поэтому ключ в том, чтобы использовать версию редактора JavaScript, а не обернутый элемент управления. Был также удобный комментарий, который я собираюсь включить сюда, чтобы сопровождать принятый ответ:
вы должны использовать версию JavaScript
управления FCKEditor не .NET
Пользовательский элемент управления как. NET Custom
контроль был построен на веб-формах
парадигма. Версия JS должна иметь
скрытое поле для значения HTML
который вы можете получить доступ в вашем
контроллер, использующий запрос ["FieldName"]