Laden...

MVC3 - Controller nimmt Parameter nicht an

Erstellt von b0b0nr1 vor 12 Jahren Letzter Beitrag vor 12 Jahren 788 Views
B
b0b0nr1 Themenstarter:in
92 Beiträge seit 2011
vor 12 Jahren
MVC3 - Controller nimmt Parameter nicht an

Hi!

ich möchte gerne dass man per URL Aufruf zu Home/Index/{Seitennr} die Seiten der letzten Beiträge durchblättern kann.

Hier mein Code


    [HttpGet]
        [ValidateInput(false)]
        public ActionResult Index(string strpage = "1")
        {
            int page = 1;
            if (!int.TryParse(strpage, out page)) page = 1;



            nCMS_NET.CORE.GlobalSettings.GlobalSettings G = new CORE.GlobalSettings.GlobalSettings();
            int max = 0;
            if (String.IsNullOrEmpty(G.Read("GLOBAL_INDEX_MAX_ENTRIES"))) {

                G.Write("GLOBAL_INDEX_MAX_ENTRIES", "10");
            
            }
            max = Convert.ToInt32(G.Read("GLOBAL_INDEX_MAX_ENTRIES"));
            max = 1;
            nCMS_NET.Content.ContentManagement.GetContent News = new nCMS_NET.Content.ContentManagement.GetContent(new string[] { 
    "eNews",
    "eArticle"
    
    },null,null,max);

               List<nCMS_NET.Content.ContentManagement.PageInitializier> Pages =    new nCMS_NET.Content.ContentManagement().GetPages(News.TotalRows, 1212, 1111, max);

            if (page > 1) {

             News = new nCMS_NET.Content.ContentManagement.GetContent(new string[] { 
    "eNews",
    "eArticle"
    
    }, null, null, max,"{prefix}Content.cDate","DESC",false,Pages[(page-1)].PageStart);
            
            }

            List<nCMS_NET.Content.nContent> N = News.getList();
      
            ViewData["TotalRows"] = News.TotalRows;
            ViewData["News"] = N;
            ViewData["Show"] = N.Count;
            ViewData["Pages"] = Pages;
            ViewData["Page"] = page;

            return View();
        }


Soweit funktioniert es jedoch nur wenn ich strpage als QueryString aufrufe. Was mach ich falsch? Habe bereits gegooglet und nichts gefunden.

Wär nett wenn ihr mir vieleicht helfen könnt 😃

S
417 Beiträge seit 2008
vor 12 Jahren

Hallo,

also wenn du die default Route ({controller}/{action}/{id}) ansprechen willst, dann musst du deinen parameter nicht strpage, sondern id nennen.
Ansonsten musst du dir eine separate Route erstellen.

B
b0b0nr1 Themenstarter:in
92 Beiträge seit 2011
vor 12 Jahren

Danke funktioniert gut....also kleine rückfrage zur not google mich nochmal durch.....der datentyp vom parameter ist egal, der muss nur ID heißen oder?

S
417 Beiträge seit 2008
vor 12 Jahren

Ja, Datentyp ist egal. In deinem Beispiel wäre int besser als string.

16.835 Beiträge seit 2008
vor 12 Jahren

Die RouteTable nimmt auch Regex-Pattern an, sodass man den Datentyp hier einschränken kann. Der Parametername des Controllers muss aber zur definierten Route passen; wenns in der Route "id" heißt, muss es auch so im Controller sein.