我是ASP.NET Razor的新手,我试图建立一个非常简单的东西,到目前为止还没有成功。
我有一个按钮,并在HTML中输入字段。我想要的是当我点击按钮时,用输入字段的文本调用C#函数。
我可以调用该函数,但我无法传递参数。我怎么能参考这个输入字段中的文字?
我在互联网上搜索过,但我还没有找到一个简单的解决方案。有吗?我喜欢这样的东西:
<input id="Text1" name="Text1" type="text" />
<input id="Button1" type="button" value="button" onclick="@{Class1.Myfunction(Text1.InnerText);}" />
谢谢!
修改(解决):
感谢Sam的评论,我能够将参数传递给另一个类的C#函数。我已将以下代码放在顶部以捕获POST参数:
@{
if (IsPost)
{
Class1.Myfunction(Request.Form["Text1"]);
}
}
从剃须刀网站发送表单时,会将Text1字段值传递给C#函数。
<form method="post">
<input id="Text1" name="Text1" type="text" />
<input id="Submit1" type="submit" value="submit" />
</form>
非常感谢!
答案 0 :(得分:1)
据我所知,调用服务器端功能的唯一方法是通过某种HTTP操作,如POST或GET。所以,你需要做类似的事情:
your_view.cshtml:
<input id="Text1" name="Text1" type="text" />
<input id="Button1" type="button" value="button" />
@section scripts
{
<script type="text/javascript">
$(document).ready(function () {
$('#Button1').on('click', function (event) {
$.ajax({
type: 'GET',
url: <server_side_functionality_URL>,
data: $("#Text1").val(),
success: function (result) {
console.log(result);
},
error: function (errorResult) {
console.log(result);
}
});
});
});
</script>
}
答案 1 :(得分:0)
视图呈现后,服务器端代码已完成,用户所做的任何更改都属于客户端。在回发时,该值将在模型中可用,因此您可以访问该值并在其上调用MyFunction。
否则,您需要使用javascript:
<input id="Button1" type="button" value="button" onclick="doSomething(event)" />
在doSomething中(注意我在我的例子中使用JQuery):
function doSomething(e) {
var text = $("#Text1").val();
//Process it somehow on the client only, not server
}
然后你可以在JavaScript中做任何你需要的事情;不知道MyFunction做了什么。我无法再从那里得到任何帮助......