当前位置:  开发笔记 > 编程语言 > 正文

在ASP.NET MVC中,如何在提交表单时获取控件的错位名称?

如何解决《在ASP.NETMVC中,如何在提交表单时获取控件的错位名称?》经验,为你挑选了1个好方法。

我在一个块中有一个表单正在提交给控制器.对于其中一个控件,我需要直接从中获取一些不会通过调用自动发生的信息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="...." %>



    

名为的控件AuthorBio显示在Form.Request字典中的控制器中ctl00$ContentPlaceHolder$AuthorBio$

我试图将第三方控件与"runat-server"一起使用的原因是因为我需要设置编辑器的Value如下:

AuthorBio.Value = HttpUtility.HtmlDecode(ViewData.Model.Bio);

尝试在FCKeditorV2标记的.aspx文件中执行此操作不起作用.(或许我也错过了一些东西)

好的,关键是使用JavaScript版本的编辑器而不是包装控件.还有一个方便的评论,我将在这里包括以接受已接受的答案:

你应该使用FCKEditor控件的javascript版本而不是.NET自定义控件,因为.NET自定义控件是在WebForms范例上构建的.JS版本应该有一个Html值的隐藏字段,您可以使用Request ["FieldName"]在控制器中访问该字段

Trevor de Ko.. 6

FCKEditor是一个标准的javascript库,它也包含在Webforms的ASP.NET控件中.因此,在没有ASP.NET控件的情况下使用FCKEditor javascript会更容易.以这种方式集成到MVC会更容易.

如果必须使用ASP.NET控件版本,那么您将遇到这些问题.但是一种解决方案是将FCKeditor置于标准的webforms页面上,然后在使用Greybox之类的对话框中显示.



1> Trevor de Ko..:

FCKEditor是一个标准的javascript库,它也包含在Webforms的ASP.NET控件中.因此,在没有ASP.NET控件的情况下使用FCKEditor javascript会更容易.以这种方式集成到MVC会更容易.

如果必须使用ASP.NET控件版本,那么您将遇到这些问题.但是一种解决方案是将FCKeditor置于标准的webforms页面上,然后在使用Greybox之类的对话框中显示.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有