首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用具有不同值的按钮通过jQuery对话框提交

如何使用具有不同值的按钮通过jQuery对话框提交
EN

Stack Overflow用户
提问于 2009-08-19 20:06:38
回答 1查看 3.4K关注 0票数 0

我想使用jQuery的对话框来替换我现在在ASP.NET MVC应用程序中使用的一些代码。旧代码使用具有不同“值”设置的“提交”按钮。我也想知道是否有更好的方法。

以下是视图中现有代码的示例:

代码语言:javascript
复制
        <%using (Html.BeginForm("SubmitValue", "MyController", FormMethod.Post))
    { %>
        <span class="field-description">My Value:  </span>
        <input id="myTextValue" maxlength="6" name="myValue" type="text"/>
        <%=Html.Hidden("myModel.myProperty1", Model.PropertyValue1) %>
        <%=Html.Hidden("myModel.myProperty2", Model.PropertyValue2) %>
        <div class="pageaction button">
             <strong>
                 <input name="submitButton" type="submit" value="Save"/>
            </strong>
            <strong>
                <input name="submitButton" type="submit" value="Delete"/>
            </strong>
            <strong>
                <input type="button" value="Cancel" />
            </strong>
         </div>
    <% } %>

控制器需要按下submit按钮的值:

代码语言:javascript
复制
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult SubmitValue(MyModel model, string submitButton)
    {
        _request.myProperty1= model.PropertyValue1;
        _request.myProperty2= model.PropertyValue2;
        if (submitButton == "Save")
        {_myService.UpdateValue(_request);}
        else
        {_myService.DeleteValue(_request);}

        return View("MyView", _request);
    }

对于jQuery UI,我想使用代码中的“按钮”部分来处理提交值。

代码语言:javascript
复制
$(function() {
$("#dialogWindow").dialog({
    bgiframe: true,
    autoOpen: false,
    height: 200,
    modal: true,
    open: function(e, ui) {            
        $("#dialogWindow :input[name='myValue']").val(currentValue);
    },
    buttons: {
        'Save': function() {
            // TODO: submit as if a submit button with the value 'Save' is used
            $(this).dialog('close');
        },
        'Delete': function() {
            // TODO: submit as if a submit button with the value 'Delete' is used
            $(this).dialog('close');
        },

        Cancel: function() {
            $(this).dialog('close');
        }
    },
    close: function() {
        //close code
    }
});

});

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-19 22:16:40

我只是简单地浏览了一下你的问题,虽然我认为你试图做的事情是可行的,但我不认为这是正确的方式。

整个想法应该是分离关注点。我认为,如果你开始将功能组合成一个单独的动作,那么这个动作就有可能变得拥挤和难以维护。

我认为你应该尝试更多地采用这样一种模型,即每个提交按钮都会调用自己的jQuery ActionResult。这会导致关注点的分离,保持ActionResult的整洁和整洁,并清理您的代码。

你没有理由不能从动作结果中调用另一个封装了所有提交按钮动作的方法,但之后你又回到了混乱的黑暗道路上。

此外,我刚刚注意到你的对话框窗口做了相当多的工作,它也有被弄乱的风险。我,这只是我个人的观点,我宁愿有三个对话窗口,每个对话窗口都做自己的事情。我有我的css设置,所以那里的变化可以反映所有的变化。然后,每个对话框都会将post发送到自己的ActionResult。

如果我把你的问题弄错了,请让我知道,我会尽力帮助你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1302341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档