Domanda

sto scrivendo alcune aggiunte a un sito basato castello monorotaia che coinvolge un componente aggiuntivo e un modulo di modifica. Il modulo aggiuntivo funziona bene e usa POST, ma gli usi modulo di modifica GET. L'unica differenza che posso vedere è che la modifica metodo viene chiamato con l'ID dell'oggetto in fase di modifica nella stringa di query. Quando si preme il pulsante di invio del modulo di modifica, l'unico argomento passato è questo oggetto Id nuovo. Ecco il codice per il modulo di modifica:

<form action="edit.ashx" method="post">
<h3>Coupon Description</h3>
<textarea name="comments" width="200">$comments</textarea>
<br/><br/>
<h3>Coupon Actions</h3>
<br/>
<div>Give Stories</div>

<ul class="checklist" style="overflow:auto;height:144px;width:100%">
#foreach ($story in $stories.Values)
    <li>
    <label>
    #set ($associated = "")
    #foreach($storyId in $storyIds)
        #if($story.Id == $storyId)
            #set($associated = " checked='true'")
        #end
    #end
    <input type="checkbox" name="chk_${story.Id}" id="chk_${story.Id}" value="true" class="checkbox" $associated/>
    $story.Name
</label>
</li>
#end
</ul>
    <br/><br/>
<div>Give Credit Amount</div>
<input type="text" name="credit" value="$credit" />
<br/><br/>

<h3>Coupon Uses</h3>
<input type="checkbox" name="multi" #if($multi) checked="true" #end /> Multi-Use Coupon?<br/><br/>
<b>OR</b>
<br/>
<br/>
Number of Uses per Coupon: <input type="text" name="uses" value="$uses" />
<br/>

<input type="submit" name="Save" />

</form>

Le differenze tra questa e la forma aggiunge è la roba velocità a che fare con l'associazione ed i valori degli input dal PropertyBag.

Il metodo si occupano di questo sulle avvia il controller in questo modo:

public void Edit(int id)
{
    Coupon coupon = Coupon.GetRepository(User.Site.Id).FindById(id).Value;
    if(coupon == null) {
        RedirectToReferrer();
        return;
    }

    IFutureQueryOfList<Story> stories = Story.GetRepository(User.Site.Id).OnlyReturnEnabled().FindAll("Name", true);

    if (Params["Save"] == null)
    {
        ...
    }
}

E 'affidabile viene chiamato, ma un punto di interruzione sulle Parametri [ "Salva"] mi permette di vedere che la HttpMethod è "GET" e gli unici argomenti passati (nella forma e la richiesta) sono l'oggetto Id e intestazioni HTTP aggiuntive.

Alla fine della giornata io non sono che la familiarità con monorotaia e questo può essere un errore stupido da parte mia, ma mi piacerebbe molto apprezzare di essere preso in giro fuori di se risolve il problema! :)

Grazie

È stato utile?

Soluzione

ho ottenuto intorno a questo utilizzando un metodo separato sul controller a che fare con il salvataggio del Cedola invece di uno sia per il caricamento del modulo e trattare con esso di presentazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top