Я получил этот метод, который возвращает случайное слово из списка:
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")
Но как я могу позаботиться о его ценности и отобразить его в представлении?
Казалось бы, вам нужно будет использовать Javascript, чтобы создать эффект, который вы описываете в своем последнем комментарии.
Alter ваш 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>
Поместите свой метод в класс, полученный из контроллера.
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;
}
}
@Html.ActionLink("GetRandom", "Home")
. Вы хотите создать отдельный контроллер или нет, это ваше дело ..