我在一个<asp:Content>块中有一个表单正在提交给控制器.对于其中一个控件,我需要直接从中获取一些不会通过调用自动发生的信息UpdateModel().
但是,在Request.Form字典中,控件的id是错误的形式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>
Run Code Online (Sandbox Code Playgroud)
名为的控件AuthorBio显示在Form.Request字典中的控制器中ctl00$ContentPlaceHolder$AuthorBio$
我试图将第三方控件与"runat-server"一起使用的原因是因为我需要设置编辑器的Value如下:
AuthorBio.Value = HttpUtility.HtmlDecode(ViewData.Model.Bio);
Run Code Online (Sandbox Code Playgroud)
尝试在FCKeditorV2标记的.aspx文件中执行此操作不起作用.(或许我也错过了一些东西)
好的,关键是使用JavaScript版本的编辑器而不是包装控件.还有一个方便的评论,我将在这里包括以接受已接受的答案:
你应该使用FCKEditor控件的javascript版本而不是.NET自定义控件,因为.NET自定义控件是在WebForms范例上构建的.JS版本应该有一个Html值的隐藏字段,您可以使用Request ["FieldName"]在控制器中访问该字段
FCKEditor是一个标准的javascript库,它也包含在Webforms的ASP.NET控件中.因此,在没有ASP.NET控件的情况下使用FCKEditor javascript会更容易.以这种方式集成到MVC会更容易.
如果必须使用ASP.NET控件版本,那么您将遇到这些问题.但是一种解决方案是将FCKeditor置于标准的webforms页面上,然后在使用Greybox之类的对话框中显示.
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |