Asp.net mvc 如何更改mvc3中编码的提交按钮文本?

Asp.net mvc 如何更改mvc3中编码的提交按钮文本?,asp.net-mvc,asp.net-mvc-3,model-view-controller,Asp.net Mvc,Asp.net Mvc 3,Model View Controller,我有一个mvc应用程序,我有一个表单,它接受输入,当我点击submit时,它将值更新到数据库中 View code: @model Mapping.Models.SecurityIdentifierMappingViewModel @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Mapping</legend>

我有一个mvc应用程序,我有一个表单,它接受输入,当我点击submit时,它将值更新到数据库中

View code: 
@model Mapping.Models.SecurityIdentifierMappingViewModel
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Mapping</legend>
        <div class="editor-label">
            @Html.Label("Pricing SecurityID")
        </div>
        <div class="editor-field">
            @Html.HiddenFor(model => model.MappingControls.Id)
            @Html.DropDownListFor(model => model.MappingControls.PricingSecurityID,
         new SelectList(Model.PricingSecurities, "Value", "Text"),
         "Select SecurityID"
            )
            @Html.ValidationMessageFor(model => model.MappingControls.PricingSecurityID)
        </div>
        <div class="editor-label">
            @Html.Label("CUSIP ID")
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(model => model.MappingControls.CUSIP,
         new SelectList(Model.CUSIPs, "Value", "Text"),
            "Select CUSIP"
            )
            @Html.ValidationMessageFor(model => model.MappingControls.CUSIP)
        </div>

        <div class="editor-label">
            @Html.Label("Calculation")
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.MappingControls.Calculation)
            @Html.ValidationMessageFor(model => model.MappingControls.Calculation)
        </div>
        <p>
            <input type="submit" value="Insert" />
        </p>
    </fieldset>
}

您可以为“提交”按钮提供一个id:

<input id="btn-submit" type="submit" value="Insert" />
现在,由于您的编辑锚似乎在服务器上调用不同的操作,并且除非您使用AJAX,否则整个页面可能会重新加载,因此使用usnig javascript设置提交按钮文本可能不是一个好主意。在这种情况下,正确的处理方法是让“编辑控制器”操作在视图模型上设置一些属性,这将指示我们处于编辑模式,并允许在“提交”按钮文本上设置条件

大概是这样的:

<input type="submit" value="@(Model.IsEditing ? "Update" : "Insert")" />


您可以在编辑操作中将视图模型上的IsEdit属性设置为true。

我应该在哪里编写此代码:$('btn submit').val('Update');我在webgrid中也有delete,那么我如何比较呢?是的,工作很好,但正如您所说,会发生以下情况:(对于1秒,更改为“更新”再次变为“插入”要做什么?使用视图模型,并让编辑操作在视图模型上设置一个属性,这将允许视图设置正确的按钮文本。请参阅我的更新答案。gr8但webgrid也有相同的“提交”按钮上的“删除”,也需要执行上述操作?这将取决于您需要什么o删除记录后显示为按钮文本。
grid.Column(
    "", 
    header: null, 
    format: 
        @<text>
            @Html.ActionLink(
                "Edit", 
                "Index", 
                new { uid = (int)item.id, userAction = "Edit" }, 
                new { @class = "edit" }
            )
            @Html.ActionLink(
                "Delete", 
                "Index", 
                new { uid = (int)item.id, userAction="Delete" }, 
                new { @class = "Delete" }
            )
        </text>
    )
$(function() {
    ...
    $('.edit').click(function() {
        $('#btn-submit').val('Update');
        ...
    });
});
<input type="submit" value="@(Model.IsEditing ? "Update" : "Insert")" />