我使用.net核心。有这个课程:
this.reportList = element.all(by.repeater("report in reportList"));
this.ReportStatus = this.reportList.all(by.css('div.display-inherit'));
控制器中的这个方法:
browser.wait(EC.textToBePresentInElementValue(PropertyPage.ReportStatus , 'Successful'));
但是当用这段代码从ajax调用这个方法时:
public class SentEmailItem
{
public SentEmailItem()
{
Attachments = new List<AttachmentItem>();
}
public long PKID { get; set; }
public string EmailTo { get; set; }
public string EmailFrom { get; set; }
public string Cc { get; set; }
public string Bcc { get; set; }
public string Body { get; set; }
public string Subject { get; set; }
public List<string> EmailToList => EmailTo.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
public List<string> CcList => (Cc ?? string.Empty).Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
public List<string> BccList => (Bcc ?? string.Empty).Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
public List<AttachmentItem> Attachments { get; set; }
}
我无法在控制器方法中获取数据。所有数据都具有空值。但是在emaiItem中放置js值看起来像:
[HttpPost]
public JsonResult SendEmail(SentEmailItem item)
{
EmailHelper.SendEmailAsync(item);
return SuccessJsonResult();
}
答案 0 :(得分:1)
似乎emaiItem
已经是这样的对象 -
var emaiItem = {Bcc : "Testmail@mail.com",
Body : "test body",
Cc : "Testmail@mail.com",
EmailFrom : "just3f@mail.com",
EmailTo : "Testmail@mail.com",
Subject : "Test subject"};
如果是这样,可以使用JSON.stringify(emaiItem)
。否则,您可以对上面的emaiItem
进行硬编码,并查看服务器端填充的值。
$.ajax({
...
data: JSON.stringify(emaiItem)
}).done(function (json) {
...
});
替换为JSON.stringify(emaiItem)
,并使用[FromBody]
属性强制模型绑定器绑定请求正文中的数据。
[HttpPost]
public JsonResult SendEmail([FromBody]SentEmailItem item)
{
}
答案 1 :(得分:0)
您是否尝试过调试c#代码以查看后端api是否被命中?如果没有,这将是一个很好的起点。