1

I'm passing to single JSON type parameter and multiple JSON type parameters to Asp.Net.

and in Asp.Net, I need to figure out the parameter is single data or multiple data to update DB (EF, Repository pattern).

[Single]

enter image description here

[Multiple]

enter image description here

Firstly, I tried like this,

[HttpPost]
public ActionResult ItemUpdate(WEBORDERLN ln ,IList<WEBORDERLN> lns)
{

but it comes to ln always. it never go to lns :(

[HttpPost]
public ActionResult ItemUpdate(WEBORDERLN ln)
{
// it works for only single update

and

[HttpPost]
public ActionResult ItemUpdate(IList<WEBORDERLN> lns)
{
// it works for only multiple update

How I figure out, the JSON type parameter is single or multiple?

anybody know, please advice me.

Thank you!

[EDIT]

enter image description here

[HttpPost]
public ActionResult ItemUpdate(WEBORDERLNS lns)
{
    try
    {
    EFWebOrderLnRepository webOrderLn = new EFWebOrderLnRepository();

    log.Debug("Count : "+lns.lns.Count.ToString()); // Object reference not set to an instance of an object.    
    log.Debug(lns.lns.Count());  //null, error : Value cannot be null
    log.Debug(lns.lns.Count().ToString());  //null, error : Value cannot be null

    foreach (WEBORDERLN ln in lns.lns)
    {
        webOrderLn.updateWebOrderLn(ln); // Error : Object reference not set to an instance of an object
    }
    .
    .
    .


public class WEBORDERLNS
{
    public IList<WEBORDERLN> lns { get; set; }
}

[EDIT]

Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection  keep-alive
Content-Length  875
Content-Type    application/json; charset=UTF-8
Cookie  user=38C6C07684B04645821CA5273EAB5B34340CE8CCA13A7D67DC748819B02C6963E4AD2A322068FC3090D3FE03EC81E663A5DED6FF2534E2595B40CF57EFF9BB544FFAC95CD79020E8A94019A3DC53B769EFC4049B6B9627E98AD9DBC1431BB5D99A47625B3353FA697A1CC005855C0248E95F61F7BD4A5362D75E5D01B395FB14E078524B8D0C7219AF959F9AED188AB30A16187DE166D5BD008B0013A65D470C52C9408C47FD42672B8FBABDB3524F77
Host    localhost:49995
Referer http://localhost:49995/
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
X-Requested-With    XMLHttpRequest

[EDIT]

enter image description here

1 Answer 1

1

You would actually be far better off creating a Model class which represents an order set, with a collection of WEBORDERLN exposed as a property.

public class OrderSet 
{
   public List<WEBORDERLN> OrderLines { get; set; }

}

On your controller method, change the incoming parameter to:-

[HttpPost]
public ActionResult ItemUpdate(OrderSet orders)
{
// it works for only multiple update

At that point, when receiving the model, you can just call the count mechanism on your OrderLines property.

// How many orders?
var orderCount = orders.OrderLines.Count;
Sign up to request clarification or add additional context in comments.

9 Comments

Thank you for your answer, but still I couldn't solve the problem. I edited my question, could you review my question again please?
Did you try my proposed solution?
I believe so, I write the code in edited question too. could you review the code please? I don;t know what I am doing wrong.. thank you!
@Expertwannabe you pass these parameters with ajax ? If yes, can you show your code ?
@Raphaël Althaus Yes, I use Ajax and Extjs. so when I edit Extjs grid cell, Extjs send the data by Ajax to sink with DB. so actually I can not see the code generated. but I will add the header information into my question. thank you very much!
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.