简体   繁体   English

如何将 div 元素作为参数传递给 MVC 控制器?

[英]How to pass a div element as a parameter to an MVC controller?

how can i pass a <div>Hello World</div> using jQuerys $.post() function to an MVC controller like public JsonResult GetDiv(string element) I've tried encodeURL() on the client but I keep getting an Internal Server Error(500)...i'm basically trying to save HTML code to SQL Server.我如何使用 jQuery $.post()函数将<div>Hello World</div>传递给像public JsonResult GetDiv(string element)这样的 MVC 控制器我已经在客户端尝试过encodeURL()但我一直得到一个 Internal服务器错误(500)...我基本上是在尝试将 HTML 代码保存到 SQL Server。 Thanks.谢谢。

It's very likely that you'll need to decorate the specific property that you are attempting to pass with the [AllowHtml] attribute as seen below on the property that you are attempting to use HTML for:您很可能需要使用[AllowHtml]属性装饰您尝试传递的特定属性,如下所示,在您尝试使用 HTML 的属性上:

public class HtmlContent 
{
    [AllowHtml] 
    public string Content { get; set; }
}

And then simply bind the to that property within your Controller Action:然后简单地将 绑定到您的控制器操作中的该属性:

public JsonResult GetDiv(HtmlContent element) 
{ 
     // Access your element here
     var html = element.Content;

     // Save to the database
}

This will let .NET know that this string is expected to contain HTML content, which it may otherwise see as potentially malicious content and reject (similar to the 500 error that you are experiencing).这会让 .NET 知道该字符串应该包含 HTML 内容,否则它可能会将其视为潜在的恶意内容并拒绝(类似于您遇到的 500 错误)。

在 div 的父元素上,调用 innerHTML,这会将 HTML 作为字符串返回,然后您可以发布该字符串。

could you provide more details?你能提供更多细节吗? Where is your controller running?您的控制器在哪里运行? Is there any specification of your Controller youre posting data to?您发布数据的控制器是否有任何规范?

In order to get the HTML code of your jQuery div use the .html() function - link为了获取 jQuery div 的 HTML 代码,请使用.html()函数 -链接

The post function works as follows: post函数的工作原理如下:

jQuery.post( url [, data ] [, success ] [, dataType ] )

The second argument must be a string or a plain object.第二个参数必须是字符串或普通对象。 Therefore using the html()-Function should work.因此使用 html()-Function 应该可以工作。

Here is a fiddle I made (basicly a copy pasta of the jsfiddle.net echo demo + jquery post demo): https://jsfiddle.net/vyrdp7uo/这是我制作的小提琴(基本上是 jsfiddle.net echo demo + jquery post demo 的复制面食): https ://jsfiddle.net/vyrdp7uo/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在MVC C#中将列表作为参数传递给控制器 - How to pass a list as a parameter to a controller in MVC C# 如何将参数从ajax传递到spring mvc控制器 - How to pass parameter from ajax to spring mvc controller MVC-Html.Action使用Java脚本检索元素,然后将其作为参数传递给Controller,然后返回PartialView - MVC - Html.Action to retrieve element using Javascript, then pass it as parameter to Controller, then return a PartialView 将&#39;div&#39;元素作为参数传递给JavaScript函数 - Pass 'div' element as parameter to JavaScript function 在javascript中向MVC控制器提交表单时如何传递参数? - How do I pass a parameter when submitting an form in javascript to a MVC controller? MVC C#将参数传递给VIA ActionLink到Controller - MVC C# Pass parameter to VIA ActionLink to Controller 如何将ng-model作为参数传递给控制器 - How to pass ng-model as parameter to controller 如何将参数从JavaScript传递到Codeigniter中的控制器? - How to pass parameter from javascript to controller in codeigniter? 如何在Ajax调用中将参数传递给Controller方法? - How to pass a parameter to a Controller method on Ajax call? 如何将 Spring mvc 控制器变量传递给 javascript - How to pass Spring mvc controller variable to javascript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM