How to obtain data from a form using method=“post”? How to request it data in my controller?

后端 未结 4 1084
隐瞒了意图╮
隐瞒了意图╮ 2020-12-22 05:19

I am trying to obtain data from my html code like the \"acquringCode\", \"cardAcceptor\", and \"merchantId\". I can\'t figure how how to obtain that data in my controller.

相关标签:
4条回答
  • 2020-12-22 06:00

    veblock's answer is totally correct. But you can also bind to simple variables in your action.

    public ActionResult AddSaveTreventLocationLookup(string InstitutionIdentificationCode, string CardAcceptorIdentificationCode, string MerchantId)
        {
         ..code..
        }
    

    As long as your form fields are named the same things as the variables, MVC will bind them for you after looking for possible sources in request.form, request.querystring, and routing variables.

    0 讨论(0)
  • 2020-12-22 06:02

    Please try by adding the FormCollection parameter to the action AddSaveTreventLocationLookup

    Like this:

    public ActionResult AddSaveTreventLocationLookup(FormCollection formCollection)
    {
    
    // now you can get the values you want
         string acquiringInstitutionIdentificationCode = formCollection["AcquiringInstitutionIdentificationCode"];
    .......
    
    0 讨论(0)
  • 2020-12-22 06:06

    //Also note since i have the razor engine you will notice my views are using // @html.TextBoxFor...However if you dont have razor engine... then you would be using // Something like <%Html.TextBoxFor. //

    //Controller logic

        [HttpPost]
        public ActionResult AddSaveTreventLocationLookup(TreventModel model)
        {
    
                string acquiringInstitutionIdentificationCode;  
                string cardAcceptorIdentificationCode;
                string merchantId;
    
                acquiringInstitutionIdentificationCode =   model.AcquiringInstitutionIdentificationCode;
                cardAcceptorIdentificationCode = model.CardAcceptorIdentificationCode;
                merchantId = model.MerchantId;
    
                //
    
            return RedirectToAction("TreventLookUp");
        }
    
        public ActionResult TreventLookUp()
        {
            return View("TreventLookUp");
        }
    }
    

    // View Logic

        @model MvcApplication2.Models.TreventModel
    
    <form id="addSaveTreventLocationLookup" method="post"action="@Url.Action("AddSaveTreventLocationLookup", "Test")">
    <table>
        <tr>
            <td colspan="3" class="tableHeader">Trevent Location Lookup Detail</td>
        </tr>
        <tr>
            <td colspan="2" class="label">Acquiring Institution Identification Code:</td>
            <td class="content">
                @*<input type="text" maxlength="200"   name="AcquiringInstitutionIdentificationCode" id="AcquiringInstitutionIdentificationCode" />*@
                @Html.TextBoxFor(m=>m.AcquiringInstitutionIdentificationCode , new {maxlength="200"})
            </td>
        </tr>
        <tr>
            <td colspan="2" class="label">Card Acceptor Identification Code:</td>
            <td class="content">
                @*<input type="text" maxlength="200" name="CardAcceptorIdentificationCode" id="CardAcceptorIdentificationCode" />*@
                @Html.TextBoxFor(m => m.CardAcceptorIdentificationCode, new { maxlength = "200" })
            </td>
        </tr>
        <tr>
            <td colspan="2" class="label">Merchant Id:</td>
            <td class="content">
                @* <input type="text" maxlength="200" name="MerchantId" id="MerchantId" />*@
                @Html.TextBoxFor(m => m.MerchantId, new { maxlength = "200" })
            </td>
        </tr>
        <tr>
            <td colspan="3" class="tableFooter">
                <br />
                <a id ="SavetreventLocationLookupAddButton" href="#" class="regularButton">Add</a>
                <a href="javascript:history.back()" class="regularButton">Cancel</a>
            </td>
        </tr>
    </table>
    </form>
     <script type="text/javascript">
    $(document).ready(function () {
        $("#SavetreventLocationLookupAddButton").click(function () {
            $("#addSaveTreventLocationLookup").submit();
        });
    });
      </script>
    
    //View Model
      public class TreventModel
      {
        public string AcquiringInstitutionIdentificationCode { get; set; }
        public string CardAcceptorIdentificationCode { get; set; }
        public string MerchantId { get; set; }
      }
    
    0 讨论(0)
  • 2020-12-22 06:07

    Create a viewModel like this one:

    public class TreventLocationLookupViewModel
    {
        public string InstitutionIdentificationCode {get; set;}
        public string CardAcceptorIdentificationCode {get; set;}
        public string MerchantId {get; set;}
    }
    

    and then use it in your Action like that:

    public ActionResult AddSaveTreventLocationLookup(TreventLocationLookupViewModel model)
    {
    
            AdminProductionServices.TreventLocationLookup treventLocationLookup = Administrator.Models.AdminProduction.TreventLocationLookup.loadTreventLocationLookup(Guid.Empty, Guid.Empty, string.Empty, string.Empty, string.Empty)[0];
    
            treventLocationLookup.acquiringInstitutionIdentifcationCode = model.InstitutionIdentificationCode;
            treventLocationLookup.cardAcceptorIdentificationCode = model.CardAcceptorIdentificationCode;
            treventLocationLookup.merchantId = model.MerchantId;
    
            Administrator.Models.AdminProduction.TreventLocationLookup.addTreventLocationLookup(treventLocationLookup);
    
        return RedirectToAction("SearchTreventLocationLookup", "Prod");
    }
    

    MVC will take care of the binding the request values to the model for you. You should have a read about model binders and validation anyway to get an idea.

    0 讨论(0)
提交回复
热议问题