Как получить два входных значения для двух параметров в методе MVC View Button OnClick? - PullRequest
0 голосов
/ 07 мая 2019

Мне нужно получить значения для двух параметров в методе Button OnClick.

<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" onclick="location.href='@Url.Action("ServiceDetails", "ServiceHeaders")?Remark='+ $('#txtRemarks').val(),?Cost='+ $('#txtCost').val()" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" onclick="location.href='@Url.Action("ServiceDetails", "ServiceHeaders")?Remark='+ $('#txtRemarks').val()'+'?Cost='+ $('#txtCost').val()" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" onclick="location.href='@Url.Action("ServiceDetails", "ServiceHeaders")?Remark='+ $('#txtRemarks').val() & ?Cost='+ $('#txtCost').val()" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" onclick="location.href='@Url.Action("ServiceDetails", "ServiceHeaders")?Remark='+ $('#txtRemarks').val():?Cost='+ $('#txtCost').val()" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" onclick="location.href='@Url.Action("ServiceDetails", "ServiceHeaders")?Remark='+ $('#txtRemarks').val() && ?Cost='+ $('#txtCost').val()" />    
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" onclick="location.href='@Url.Action("ServiceDetails", "ServiceHeaders")?Remark='+ $('#txtRemarks').val(),?Cost='+ $('#txtCost').val()" />

Мне нужно получить значения текстового поля txtRemarks & txtCost в два параметра метода Button OnClick.

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Вы можете реализовать свое требование с помощью jQuery, как это

Обновление cshtml

<input type="text" id="txtRemarks" value="Test" />
<input type="text" id="txtCost" value="10" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" />
<input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" />

Добавление тега сценария в cshtml

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
    $(document).ready(function() {
       updateAttr();
    });
    $("#txtRemarks, #txtCost").change(function() {
        updateAttr();
    });

    function updateAttr() {
        $('input[type="button"]').each(function(index, item) {

            var onclick = 'location.href=';
            onclick += '@Url.Action("ServiceDetails", "ServiceHeaders")';

            onclick += "?Remark=" + $('#txtRemarks').val();
            onclick += "?Cost=" + $('#txtCost').val();
            $(item).attr('onclick', onclick);
        });
    }

</script>

Я проверил, и это сработало

0 голосов
/ 07 мая 2019

Я бы положился на стандартных помощников ASP.NET MVC:

chtml

@using (Html.BeginForm("AddServiceHeaders", "ServiceDetails", FormMethod.Post))  
{ 
    @Html.EditorFor(model => model.Remark)  
    @Html.EditorFor(model => model.Cost)  

    <input type="button" id="btnAddtoGrid" value="Add" class="btn btn-group" />
}

c #

public sealed class Model {
    public string Remark { get; set; }
    public int Cost { get; set; }
}

public class ServiceDetailsController : Controller {

    [HttpPost]
    public ActionResult AddServiceHeaders(Model model){
        // ..
    }

}

См. пример: Music Store .

Я бы рекомендовал :

  • использовать POST-глагол для любого обновления данных (передавать параметры серверу в теле запроса, а не в строке запроса)
  • использовать проверку ввода
  • защитить ваши данные от злонамеренных действий - см. AntiForgeryToken
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...