如何在这里查看条件

时间:2010-08-04 03:51:08

标签: asp.net asp.net-mvc asp.net-mvc-2

<script type="text/javascript">
     $('#TextEdit').click(function () {
         $('#ObnAdd').val('Save');
     });
    </script>
    <% using (Html.BeginForm("Create", "ObnTextComponents",FormMethod.Post,new {@id = "TheForm"}))
       {%>

我需要检查条件,如果我的ObnAdd Button文本是Add,需要去创建ActionResult

如果Button文本是Save,我需要去Save ActionResult ..

如何在BeginForm中检查此条件?

感谢

2 个答案:

答案 0 :(得分:2)

从您的评论中看来,最好检查 Controller 侧的按钮值。因为在页面加载后你无法更改你的aspx代码

所以,在你的控制器中你应该有这样的东西(确保你的ObnAdd有名字= ObnAdd):

public ActionResult SaveCreate(FormCollection form, string ObnAdd)
{
    if (ObnAdd == "Save")
    {
        //Do save
    }
    else if (ObnAdd == "Create")
    {
        //Do create
    }

    //here return RedirectToAction or whatever
    return RedirectToAction("Index");
}

你的HTML:

<% using (Html.BeginForm("SaveCreate", "ObnTextComponents",FormMethod.Post,new {@id = "TheForm"}))
       {%>

答案 1 :(得分:1)

ASP在页面加载之前执行服务器端并且无法访问dom。而javascript在页面加载期间和之后执行客户端。

由于更改按钮文本是在javascript中完成的(在所有asp运行之后),按钮在页面加载期间将始终具有相同的值,因此不需要分支。还要注意,asp无法访问它正在创建的页面的dom来测试这些东西。您需要包含一个为您构建dom树的库,或者使用标准文本运算符来检查您正在寻找的值(如正则表达式)。

我认为你在这里做的一个简单的解决方案是在表单上维护一个隐藏的输入,当你更新按钮时也会更新。然后,您可以提交按钮,处理表单的页面可以根据所有可用信息做出必要的决定。