Javascript 如何使用umbraco中的ajax将节点作为参数和其他类型传递给函数
我试图将一个节点和两个字符串作为参数传递给umbraco中的JsonResult。调试该方法时,节点变量没有值。下面是javascriptJavascript 如何使用umbraco中的ajax将节点作为参数和其他类型传递给函数,javascript,c#,asp.net,ajax,umbraco,Javascript,C#,Asp.net,Ajax,Umbraco,我试图将一个节点和两个字符串作为参数传递给umbraco中的JsonResult。调试该方法时,节点变量没有值。下面是javascript function newsSub() { if(validateForm('newsSubscriptionForm') == true) { var name = document.forms["newsSubForm"]["name"].value;//The input name
function newsSub() {
if(validateForm('newsSubscriptionForm') == true)
{
var name = document.forms["newsSubForm"]["name"].value;//The input name
var email = document.forms["newsSubForm"]["email"].value;//The input email
var node = '@SiteNode';
$.ajax({
type: 'POST',
url: '/Umbraco/Surface/AjaxSurface/Newsletter',
data: {"name":name, "email":email, "node":node},
dataType: 'json',
cache:false,
success:function(data){
var success = data.Success;
var test = data.test;
if(success == true){
document.getElementById("sendTrue").style.display='inline';
}
else{
document.getElementById("sendFalse").style.display='inline';
}
//success:function (result) {//Om de waarde van een string op te halen die naar een jsonresult geretourneerd wordt.
// alert(result);
}
})
document.getElementById("newsSubscriptionForm").style.display='none';
}
};
这是c#
publicJSONResult时事通讯(字符串名称、字符串电子邮件、节点)
{
INode=node;
if(ModelState.IsValid)
{
NewsSubscriptionFormModel=新的NewsSubscriptionFormModel();
model.Email=电子邮件;
model.Name=名称;
Dictionary userData=newdictionary();
foreach(typeof(newsSubscriptionFormModel).GetProperties()中的var prop)
{
if(prop.GetValue(model,null)!=null)
{
userData.Add(prop.Name,(prop.GetValue(model,null)?“”)。ToString();
}
}
//返回Json(userData[“Name”],JsonRequestBehavior.AllowGet);//Om te kijken of alles dat optgestuurd wordt wel waarde heeft。
if(Mailing.GenerateAndSendMail(userData,iNode))
{
返回Json(新的{Success=true});
}
}
返回Json(新的{Success=false});
}
我可能需要转换数据之后必须键入的内容:
但是怎么做呢?那是不可能的。
我建议您只发送节点id,然后在c#中查找节点
因此,请在javascript中查找id:
var nodeId = @CurrentPage.Id;
...
data: {"name":name, "email":email, "nodeId":nodeId},
C#:
修好了!!像这样:var节点=新节点(nodeId);INode=node;谢谢你,亲爱的先生!!我希望你能成功@devKoen很酷,成功了!请接受答案,以便其他人可以看到其关闭。
var nodeId = @CurrentPage.Id;
...
data: {"name":name, "email":email, "nodeId":nodeId},
public JsonResult Newsletter(String name, String email, int nodeId)
{
var node = new Node(nodeId);
....