有没有办法将对象作为参数传递给Web API中的Get方法?我有以下情况:
在我的Web.API项目中,Get方法如下所示:
public IEnumerable<ArticleMetaData> GetComponentXMLByDate(ComponentRequest request)
{
// Some logic here
return articleMeta;
}
Run Code Online (Sandbox Code Playgroud)
我的ComponentRequest对象如下所示:
public class ComponentRequest
{
public string startdate { get; set; }
public string enddate { get; set; }
public string pagenumber { get; set; }
public string pagesize { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我试着这样称呼它:
http://mydomain.com/api/values/?startdate=121922&enddate=063020&pagenumber=2&pagesize=100
在方法中,ComponentRequest请求将变为null.如果我将方法更改为接受多个字符串参数而不是对象,则它可以正常工作.
我在设置中遗漏了什么吗?
我有一个要求从视图页面调用控制器方法的要求.单击下面的链接,应调用该方法.
@Html.ActionLink(item.InvoiceNumber, "SendPdfStatement", "Invoice",
new { item.InvoiceNumber }, new { target = "_blank" })
Run Code Online (Sandbox Code Playgroud)
方法签名如下:
public void SendPdfStatement(string InvoiceNumber)
{
InvoiceNumber = InvoiceNumber.Trim();
ObjectParameter[] parameters = new ObjectParameter[1];
parameters[0] = new ObjectParameter("InvoiceNumber", InvoiceNumber);
List<Models.Statement> list = new List<Models.Statement>();
list = _db.ExecuteFunction<Models.Statement>("uspInvoiceStatement", parameters).ToList<Models.Statement>();
var statementResult = _db.ExecuteFunction<Models.Statement>("uspInvoiceStatement", parameters);
Models.Statement statement = statementResult.SingleOrDefault();
pdfStatementController.WriteInTemplate(statement);
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是当我点击链接时,会打开一个空白窗口.我知道这是有道理的new { target = "_blank" }.如果我通过null它的位置我的链接页面变成空白.我应该在这里传递什么,以便我的页面保持不变,并且不会出现新的空白窗口.
model-view-controller asp.net-4.0 c#-4.0 asp.net-mvc-3 asp.net-mvc-5
有谁知道我们是否可以根据URI检索SDL Tridion页面的已发布URL?理想情况下,我想使用核心服务来做到这一点.
有谁知道我可以找到使用核心服务中支持SDL Tridion儿童出版物基于共享或局部组件的URI父组件的URI?