我得到了这个从列表中返回一个随机单词的方法:
public string GetRandom()
{
var firstNames = new List<string> {"Hund", "Katt", "Hus", "Bil"};
Random randNum = new Random();
int aRandomPos = randNum.Next(firstNames.Count);//Returns a nonnegative random number less than the specified maximum (firstNames.Count).
string currName = firstNames[aRandomPos];
return currName;
}
在我看来,我希望能够调用此方法并显示它返回的值。 我无法弄清楚如何,我可以这样调用这个方法:
@Html.ActionLink("GetRandom","GetRandom")
但是我如何处理它的值并在视图中显示它?
答案 0 :(得分:2)
看起来您需要使用Javascript才能产生您在最新评论中描述的效果。
更改GetRandom
方法以返回JsonResult
而不是string
:
public ActionResult GetRandom()
{
var firstNames = new List<string> { "Hund", "Katt", "Hus", "Bil" };
Random randNum = new Random();
int aRandomPos = randNum.Next(firstNames.Count);
string currName = firstNames[aRandomPos];
return Json(currName, JsonRequestBehavior.AllowGet);
}
每次点击按钮时,使用jQuery检索数据并在标签异步(无页面刷新)中显示:
<p id="randomName">Random Swag</p>
<button id="randomButton">Generate Name</button>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
$("#randomButton").click(function () {
$.get('/Home/GetRandom', function (data) {
$("#randomName").text(data);
});
});
</script>
答案 1 :(得分:0)
将您的方法放在一个派生自Controller。
的类中ActionLink,第一个参数是动作名称,第二个参数是控制器名称。
你想这样打电话。
@Html.ActionLink("GetRandom", "GetRandom")
这是你需要的。
public class GetRandomController : Controller
{
public string GetRandom()
{
var firstNames = new List<string> { "Hund", "Katt", "Hus", "Bil" };
Random randNum = new Random();
int aRandomPos = randNum.Next(firstNames.Count);//Returns a nonnegative random number less than the specified maximum (firstNames.Count).
string currName = firstNames[aRandomPos];
return currName;
}
}