我在同一页面上有两个表单。在点击任何一个按钮时,正在提交按钮的两个查询,因为我使用了IsPost
这样的函数if(IsPost){ //run queries}
由于两个表单都在同一页面上,因此在提交任何按钮时,两个按钮的事件都会被触发。
我想在提交每个按钮时运行单独的查询。
在php中,我们使用了if(isset($_REQUEST['buttonname'])){ //run queries }
。
有没有这样的方法,我可以在cshtml中实现相同的目标吗?
更新
如果我已经在按钮中传递了值,该怎么办?
喜欢例如:
<div class="btn-group pull-right">
@{
var followersearchcommand = "SELECT * from follow where follow_followerid = @0 and follow_followingid = @1";
var followsearch = db.Query(followersearchcommand, follower_id, row.student_id);
}
@if(followsearch.Count > 0){
<button class="btn btn-primary" type="submit" name="unfollow_followingid" value="@row.student_id" title="Follow" style="display: none"></button>
<button class="btn btn-primary" type="submit" name="unfollow_button" value="unfollow" title="Follow">UnFollow</button>
}
else{
<button class="btn btn-primary" type="submit" name="followingid" value="@row.student_id" title="Follow" style="display: none"></button>
<button class="btn btn-primary" type="submit" name="follow_button" value="follow" title="Follow">Follow</button>
}
</div>
答案 0 :(得分:2)
为两个按钮分配相同的名称并测试它们的值:
@{
if (IsPost){
if(Request["button"] == "buttonA"){
// button A is pressed
} else {
// button B is pressed
}
}
}
<form method="post">
<input type="submit" name="button" value="buttonA" />
<input type="submit" name="button" value="buttonB" />
</form>
<强>被修改强>
如果您想要两个不同的表单,可以使用IsEmpty()方法:
@{
if (IsPost){
if(!Request["buttonA"].IsEmpty()){
// button A is pressed
} else {
// button B is pressed
}
}
}
<form method="post">
<input type="submit" name="buttonA" value="buttonA" />
</form>
<form method="post">
<input type="submit" name="buttonB" value="buttonB" />
</form>
答案 1 :(得分:0)
HTML:
<form id="a">
<button type="submit">Submit A</button>
</form>
<form id="b">
<button type="submit">Submit B</button>
</form>
的javascript:
$(function(){
$("#a").submit(function(e){
e.preventDefault();
// Query A
alert('A');
});
$("#b").submit(function(e){
e.preventDefault();
// Query B
alert('B');
});
});
编辑:
您可以对控制器的操作进行ajax调用:
$.ajax({
type: "POST",
url: "@Url.Action("actionName", "controllerName")",
data: { /* your data */ },
success: function (data, textStatus, jqXHR) {
// success
},
error: function (jqXHR, textStatus, errorThrown) {
// error
}
});
在你的控制器中:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult actionName(/* your data */)
{
var success = DoSomething();
if (!success)
{
throw new HttpException(500, "Server error!");
}
return Json("");
}
沿着这些方向......
希望这有帮助!