gpt4 book ai didi

c# - 使用 Umbraco Base 返回 Json 而不是 XML

转载 作者:太空狗 更新时间:2023-10-29 22:27:46 25 4
gpt4 key购买 nike

我有一个 .NET 方法可以将新成员添加到我的数据库中。它通过 AJAX 请求执行此操作。我可以正常工作,但是我在返回正确的响应消息时遇到问题,因此我可以向用户打印正确的消息。

目前我的方法是这样的:

    public static string MemberRegister(int process)
{

//here we find form values posted to the current page
HttpRequest post = HttpContext.Current.Request;

//get values from ajax URL
var name = post["name"];
var email = post["email"];
var username = post["username"];
var password = post["password"];

//check if email exists
if (Member.GetMemberFromEmail(email) == null)
{

MemberType userMemberType = new MemberType(1111); //id of membertype 'demo'
Member newMember = Member.MakeNew(name, userMemberType, new umbraco.BusinessLogic.User(0));

newMember.AddGroup(MemberGroup.GetByName("Active").Id);
newMember.Email = email;
newMember.Password = password;
newMember.LoginName = username;

newMember.Save();

return "success";
}
else
{
return "emailError";
}

}

我的 Ajax 代码如下所示:

        // submit
$registerForm.submit(function() {

$loader.show();

jQuery.ajax({
url: "/processform.aspx",
type: "POST",
data: $(this).serialize()

}).complete(function( response ) {

alert(response.responseText);

if( response.responseText === "success" ) {
$registerSuccess.fadeIn();
} elseif( response.responseText === "emailError" ) {
$registerEmailError.fadeIn();
} else {
$registerError.slideDown();
}

$loader.hide();

});



return false;

});

例如,如果成员 all ready 存在,则返回响应:

<value>emailError</value> 

我只希望它也返回 emailError 而不是值标签。我该怎么做?

fiddler (原始):

 HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Sun, 25 Mar 2012 20:59:54 GMT
Content-Length: 25

<value>emailError</value>


POST http://domain.com/base/Forms/MemberRegister/process.aspx HTTP/1.1
Host: domain.com
Connection: keep-alive
Content-Length: 125
Origin: http://domain.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11
Content-Type: application/json; charset=UTF-8
Accept: application/json, text/javascript, */*; q=0.01
Referer: http://domain/register.aspx
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: ASP.NET_SessionId=ys4mmhsn2mpqcpja1iyjg04m; UMB_UPDCHK=1; __utma=256732567.15732944.1331581910.1332617890.1332627641.11; __utmc=256732567; __utmz=256732567.1331581910.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); UMB_UCONTEXT=12621b40-16fe-4422-a027-cf4fa68fe03d; __utma=176230262.1311679778.1332368941.1332694687.1332708163.12; __utmb=176230262.3.10.1332708163; __utmc=176230262; __utmz=176230262.1332368941.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

__VIEWSTATE=%2FwEPDwUENTM4MWRkEytUM47m6NUA6dpfOudOh9t51j6okfG%2BQhu4Em%2B26KU%3D&name=ppp&email=ppp&username=ppp&username=ppp

谢谢罗伯特

最佳答案

这是一个很好的例子,说明如何使用 Umbraco Base 返回 JSON 对象:

/* Be sure to add References to:
*
* umbraco.dll
* System.Web.dll
* System.Web.Extensions.dll
*/

using System.Web;
using System.Web.Script.Serialization;

using umbraco.presentation.umbracobase;

namespace CoB.Umb.Base.Example
{
[RestExtension("Example")]
public class Example
{
[RestExtensionMethod(returnXml = false, allowAll = true)]
public static void Get()
{
string json = "";

var person = new
{
firstName = "John",
lastName = "Doe"
};

json = new JavaScriptSerializer().Serialize(person);

HttpContext.Current.Response.ContentType = "application/json";
HttpContext.Current.Response.Write(json);
}
}
}

和 javascript:

$.getJSON('/base/Example/Get', function (data) {
alert("Hey, " + data.firstName + " " + data.lastName);
});

关于c# - 使用 Umbraco Base 返回 Json 而不是 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com