�r���[�E�w���p�[�̎���
�@�ȏ�A�����܂Ō��Ă��Ă�������悤�ɁAASP.NET MVC�ł̓r���[�J�����x������r���[�E�w���p�[�����܂����Ă���B�������A���ۂɃA�v���P�[�V�������J�����Ă��������ł́A�u����ȃw���p�[���~�����v�Ɗ�����ǖʂ����Ȃ��Ȃ��͂����B
�@�����Ŗ{�e�㔼�ł́A�r���[�E�w���p�[�����삷����@�ɂ��ĉ������B
���V���v���ȃr���[�E�w���p�[���`����
�@�܂��͍ł��V���v���Ȍ`�Ńr���[�E�w���p�[���쐬���Ă݂悤�B�Ⴆ�Έȉ��́A�^����ꂽURL�iurl�j�Ƒ�փe�L�X�g�ialt�j�����<img>�^�O������ImageTag���\�b�h�̗Ⴞ�B
using System.Web;
using System.Web.Mvc;
namespace MvcTemplate.Helpers
{
public static class WingsHelper
{
public static IHtmlString ImageTag(string url, string alt)
{
return MvcHtmlString.Create(string.Format(
"<img src=\"{0}\" alt=\"{1}\" title=\"{1}\" />",
HttpUtility.HtmlAttributeEncode(url),
HttpUtility.HtmlAttributeEncode(alt)
));
}
}
}
|
Namespace Helpers
Public Module WingsHelper
Public Function ImageTag(ByVal url As String, ByVal alt As String) As IHtmlString
Return MvcHtmlString.Create(String.Format(
"<img src=""{0}"" alt=""{1}"" title=""{1}"" />",
HttpUtility.HtmlAttributeEncode(url),
HttpUtility.HtmlAttributeEncode(alt)
))
End Function
End Module
End Namespace
|
|
���X�g10�@ImageTag�w���p�[���`�����R�[�h�i��FWingsHelper.cs�A���FWingsHelper.vb�j |
�r���[�E�w���p�[���`�����N���X�́A����I�Ɂu~/Helpers�v�t�H���_�ɍ쐬���Ă��邪�A����Ƃ����ċK����킯�ł͂Ȃ��B |
�@ImageTag���\�b�h�ɒ��ڂ��Ă݂�ƁA�r���[�E�w���p�[�Ƃ͂����Ă�������ʂȍ\��������킯�ł͂Ȃ��A�P�Ȃ�static���\�b�h�iVisual Basic�̓��W���[���E���\�b�h�j�ł��邱�Ƃ�������B�����Ƃ��Ď����url�i�摜URL�j�Aalt�i��փe�L�X�g�j�����<img>�^�O�𐮌`���A�߂�l�Ƃ��ĕԂ��Ă��邾�����B
�@1�_�����A�߂�l�́iString�^�ł͂Ȃ��jIHtmlString�^�Ƃ��ĕԂ��Ă���_�ɒ��ӂ��Ăق����B�O����G�ꂽ�悤�ɁAIHtmlString�^�́uHTML�G���R�[�h�ς݂ł��邱�Ɓv��\���I�u�W�F�N�g�ŁAASP.NET�ɑ��āu��������G���R�[�h���Ă͂Ȃ�Ȃ��v���Ƃ�ʒm������̂��BString�^�̂܂܂ł́A�߂�l�Ɋ܂܂��^�O��Razor���ŃG�X�P�[�v��������Ă��܂��̂Œ��ӂ��Ăق���*3�BString�^��IHtmlString�^�ɕϊ�����ɂ́AMvcHtmlString.Create���\�b�h���Ăяo���������B
*3 �������ARazor����Html.Raw���\�b�h���Ăяo���Ă��\��Ȃ����A����͖]�܂�����Ԃł͂Ȃ��B
|
�@���ۂɁAImageTag�w���p�[���Ăяo���A���������삷�邱�Ƃ��m�F���Ă������B
@using MvcTemplate.Helpers;
@WingsHelper.ImageTag("http://www.wings.msn.to/image/wings.jpg",
"�T�[�o�[�T�C�h�Z�p�̊w�ю�")
|
@Imports MvcTemplateVb
@WingsHelper.ImageTag("http://www.wings.msn.to/image/wings.jpg",
"�T�[�o�[�T�C�h�Z�p�̊w�ю�")
|
|
���X�g11�@ImageTag�w���p�[���Ăяo�����߂̃R�[�h�i��FC#�A���FVB�j |
<img src="http://www.wings.msn.to/image/wings.jpg"
alt="�T�[�o�[�T�C�h�Z�p�̊w�ю�" title="�T�[�o�[�T�C�h�Z�p�̊w�ю�" />
|
|
���X�g12�@���s���Ƀ��X�g11�ɂ��o�͂����HTML�R�[�h |
���r���[�E�w���p�[�̖��O��Ԃ�o�^����
�@�����Ƃ��A�ʂ̃r���[�E�e���v���[�g��using�^Import���߂��Ăяo���̂́A���܂�X�}�[�g�ȕ��@�ł͂Ȃ��B�r���[�E�w���p�[�͕����̃r���[�E�e���v���[�g�ŋ��L����ł��낤���Ƃ��l���Ă��A���炩���ߖ��O��Ԃ��A�v���P�[�V�����ɓo�^���Ă����̂��]�܂����B
�@Razor�ŋ��ʂ��ė��p���閼�O��Ԃ�o�^����ɂ́A�u~/Views/Web.config�v����<pages>�|<namespaces>�|<add>�v�f��lj�����悢�i�A�v���P�[�V�����E���[�g������Web.config�ł͂Ȃ��_�ɗv���Ӂj�B
<system.web.webPages.razor>
�c�c�����c�c
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
�c�c�����c�c
<add namespace="System.Web.Routing" />
<add namespace="MvcTemplate.Helpers"/>
</namespaces>
</pages>
</system.web.webPages.razor>
|
|
���X�g13�@�r���[�E�w���p�[�̖��O��Ԃ�o�^����R�[�h�iWeb.config�j |
�@���̏�ԂŁA�����Ƀ��X�g11����using�^Import���߂���菜���Ă݂�ƁA�������r���[�E�w���p�[���������Ăяo����AMvcTemplate.Helpers���O��Ԃ��F������Ă��邱�Ƃ��m�F�ł���͂����B
���g�����\�b�h�Ƃ��ăr���[�E�w���p�[���`����
�@���X�g10�̗�ł́A�V���ȃw���p�[�E�N���XWingsHelper�ɑ��ăw���p�[�E���\�b�h���`�������A�w���p�[�E�N���X���������ɑ����Ă����͖̂]�܂������Ƃł͂Ȃ��B�J���҂����ꂼ��Ƀw���p�[�E�N���X���`�������ʁA���p�҂����ꂼ��̏������ӎ����āA�uWingsHelper.�`�v�uMicrosoftHelper.�`�v�̂悤�ɏ����Ȃ���Ȃ�Ȃ��Ƃ�����A�g��������ǂ��Ȃ��B
�@�����œo�ꂷ��̂��A�g�����\�b�h�Ƃ����@�\���B�g�����\�b�h�Ƃ́A�����̃N���X�ɑ��āi�p���ɂ�炸�j���\�b�h������lj�����d�g�݂̂��ƁB�g�����\�b�h�𗘗p���邱�ƂŁA���܂���N���X�Ɏ�������邱�ƂȂ��A�������������炠�������\�b�h�ł��邩�̂悤�ɐV���ȃ��\�b�h��lj��ł���킯��*4�B�g�����\�b�h�ɂ��ẮA�uC#�J���҂̂��߂̊g�����\�b�h�����v�A�uVB�J���҂̂��߂̊g�����\�b�h�����v�Ȃǂ̋L�����Q�Ƃ��ꂽ���B
*4 ���́A�W���̃r���[�E�w���p�[�����̑����͊g�����\�b�h�Ƃ��Ē�`����Ă���B
|
�@�ȉ��́A���X�g10��ImageTag�w���p�[�̐錾�J�n�������g�����\�b�h�Ƃ��ď�����������ł���B
public static IHtmlString ImageTag(this HtmlHelper helper, string url, string alt)
|
<System.Runtime.CompilerServices.Extension()>
Public Function ImageTag(ByVal helper As HtmlHelper, ByVal url As String, ByVal alt As String) As IHtmlString
|
|
���X�g14�@���X�g10��HtmlHelper�N���X�̊g�����\�b�h�Ƃ��ď����������R�[�h�i��FWingsHelper.cs�A���FWingsHelper.vb�j |
�@�g�����\�b�h�ł��邱�Ƃ̏����́A�ȉ���2�_�ł���B
�iC#�̏ꍇ�j
- static�N���X��static���\�b�h�ł��邱��
- ��1�����Ƃ��āAthis�L�[���[�h��t���Ċg������N���X���w�肷�邱�Ɓi���̏ꍇ�ł���A�r���[�E�w���p�[�����܂Ƃ߂�A�������Ƃ̃N���X�ł���HtmlHelper�N���X�j
�iVisual Basic�̏ꍇ�j
- ���W���[���ɑ����郁�\�b�h�ł��邱��
- ��1�����Ƃ��āA�g������N���X���w�肷�邱�Ɓi���̏ꍇ�ł���A�r���[�E�w���p�[�����܂Ƃ߂�A�������Ƃ̃N���X�ł���HtmlHelper�N���X�j
�@ImageTag�w���p�[�̏ꍇ�A���łɃ��X�g10��static���\�b�h�^���W���[���E���\�b�h�Ƃ��Ē�`����Ă���̂ŁA��͑�1������lj����Ă�邾���ł悢�B���̏�ԂŁA�r���[�E�e���v���[�g����ImageTag���\�b�h���Ăяo���ɂ́A�ȉ��̂悤�ȃR�[�h�������悢�B
@Html.ImageTag("http://www.wings.msn.to/image/wings.jpg",
"�T�[�o�[�T�C�h�Z�p�̊w�ю�")
|
|
���X�g15�@���X�g14�ŏC������ImageTag�w���p�[���Ăяo���R�[�h |
�@MvcTemplate.Helpers.WingeHelper�N���X�̃����o�ł���ɂ��ւ�炸�AHtmlHelper�iHtml�j�o�R��ImageTag���\�b�h���Ăяo���Ă���_�ɒ��ڂ��Ăق����B
�@�Ȃ��A�g�����\�b�h�𗘗p����ꍇ���A�g�����\�b�h���`�������O��ԁi���̏ꍇ��MvcTemplate.Helpers���O��ԁj���C���|�[�g���Ă����K�v������B�����Ȃ��ƁA�g�����\�b�h�̎��̂�ASP.NET�������ł��Ȃ����߂��B�������{�e�ł́A���ł�Web.config�Ŗ��O��Ԃ�o�^�ς݂ł���̂ŁA�r���[�E�e���v���[�g��using�^Import���߂̋L�q�͕s�v���B
��TagBuilder�N���X�ɂ��w���p�[�̎���
�@�����܂ł̗�ł́A�^�O���������Ƃ��đg�ݗ��ĂĂ������A���G�ȃ^�O������ǖʂł̓R�[�h���璷�ɂȂ肪���ł��邵�A����葮���l��{�̃e�L�X�g�̃G�X�P�[�v�������R��錴���ɂ��Ȃ�B
�@������ASP.NET MVC�ł́A�^�O����������邽�߂�TagBuilder�Ƃ����N���X��p�ӂ��Ă���BTagBuilder�N���X�𗘗p���邱�ƂŁA��������H���������I�ɁA���A���G�ȃ^�O�����V���v���ȃR�[�h�Ń^�O����������邱�Ƃ��\�ɂȂ�B
�@�Ⴆ�Έȉ��́AImageTag���\�b�h���ATagBuilder�N���X���g���ď����������Ⴞ�B�Ȃ��A����������ɓ������đ�3�����Ƃ��ĔC�ӂ�HTML������\��htmlAttrs�i�����^�j������悤�ɏC�����Ă���B
public static IHtmlString ImageTag(this HtmlHelper helper, string url, string alt, object htmlAttrs)
{
// <img>�^�O��
var img = new TagBuilder("img");
// src�Aalt������lj�
img.MergeAttribute("src", url);
img.MergeAttribute("alt", alt);
// ����htmlAttrs����ɁA���̂ق��̑�����lj�
img.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttrs));
// �ȏ�̐ݒ�����HTML��������o��
return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
}
|
<System.Runtime.CompilerServices.Extension()>
Public Function ImageTag(ByVal helper As HtmlHelper, ByVal url As String, ByVal alt As String, ByVal htmlAttrs As Object) As IHtmlString
' <img>�^�O��
Dim img As New TagBuilder("img")
' src�Aalt������lj�
img.MergeAttribute("src", url)
img.MergeAttribute("alt", alt)
' ����htmlAttrs����ɁA���̂ق��̑�����lj�
img.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttrs))
' �ȏ�̐ݒ�����HTML��������o��
Return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing))
End Function
|
|
���X�g16�@TagBuilder�N���X�𗘗p���ď���������ImageTag�w���p�[�i��FWingsHelper.cs�A���FWingsHelper.vb�j |
�@TagBuilder�͂ƂĂ��V���v���ȃN���X�ŁA�����悻�ȉ��̎菇�Ń^�O���ł���B
- �R���X�g���N�^�Ń^�O�����w��
- MergeAttribute�^MergeAttributes���\�b�h�ő�����lj�
- ToString���\�b�h�Ń^�O��������o��
�@����������AnonymousObjectToHtmlAttributes���\�b�h�́A�����^��IDictionary�^�ɕϊ����邽�߂̃��\�b�h���i�����Ƀv���p�e�B���Ɋ܂܂��A���_�[�X�R�A���_�b�V���ɕϊ�����j�BMergeAttributes���\�b�h�͈����Ƃ��ē����^����邱�Ƃ��ł��Ȃ��̂ŁA���̂悤�ɂ��炩���ߕϊ��������K�v�ɂȂ�B
�@ToString���\�b�h�̈����ł́A�^�O�̏o�͌`�����w��ł���B�w��\�Ȓl�́A�ȉ��̂Ƃ���B
�ݒ�l |
�T�v |
Normal |
�J�n�^�O�`�o�̓^�O���o�� |
StartTag |
�J�n�^�O�݂̂��o�� |
EndTag |
�I���^�O�݂̂��o�� |
SelfClosing |
��v�f�i<tag />�j���o�� |
|
�\3�@ToString���\�b�h�̈����iTagRenderMode�̂̃����o�j |
|
�@�������AToString���\�b�h�̖߂�l�͒P�Ȃ�String�^�ł���̂ŁA��قǂƓ�����MvcHtmlString.Create���\�b�h��IHtmlString�I�u�W�F�N�g�ɕϊ����Ă����K�v������B
�@����ł͂��������A�C�������w���p�[���Ăяo���Ă݂悤�B
@Html.ImageTag("http://www.wings.msn.to/image/wings.jpg",
"�T�[�o�[�T�C�h�Z�p�̊w�ю�", new { height=50, width=150 })
|
@Html.ImageTag("http://www.wings.msn.to/image/wings.jpg",
"�T�[�o�[�T�C�h�Z�p�̊w�ю�", New With {.height = 50, .width = 150})
|
|
���X�g17�@���X�g16�ŏC������ImageTag�w���p�[���Ăяo���R�[�h |
<img alt="�T�[�o�[�T�C�h�Z�p�̊w�ю�" height="50"
src="http://www.wings.msn.to/image/wings.jpg" width="150" />
|
|
���X�g18�@���s���Ƀ��X�g17�ɂ��o�͂����HTML�R�[�h |
��Razor�\���Ńr���[�E�w���p�[������
�@����1�B�r���[�E�w���p�[�́ARazor�\���́u@helper���߁v�𗘗p���Ē�`���邱�Ƃ��\���B�Ⴆ�A�ȉ��͐�قǍ쐬����ImageTag�w���p�[��Razor�\���Œ�`������ł���B
@helper ImageTag(string url, string alt, object htmlAttrs) {
<img src="@url" alt="@alt"
@foreach (var item in System.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttrs))
{
<text>@item.Key = "@item.Value"</text>
}
/>
}
|
@Helper ImageTag(ByVal url As String, ByVal alt As String, ByVal htmlAttrs As Object)
@<img src="@url" alt="@alt"
@For Each item In System.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttrs)
@<text>@item.Key = "@item.Value"</text>
Next
/>
End Helper
|
|
���X�g19�@Razor�\���ŏ���������ImageTag�w���p�[�i��FWings.cshtml�A���FWings.vbhtml�j |
�@@helper���߂̍\���́A�ȉ��̂Ƃ��肾�B
@helper �w���p�[��(����, �c�c) {
�w���p�[�̖{��
}
|
@Helper �w���p�[��(����, �c�c)
�w���p�[�̖{��
End Helper
|
|
���X�g20�@@helper���߂̍\���i��FC#�A���FVB�j |
�@@helper���߂Ɋ�������́A�قڕW���I��C#�AVisual Basic�̃��\�b�h��`�Ɠ����v�̂ŃR�[�h���L�q�ł��邱�Ƃ������邾�낤�B�W���I�ȃ��\�b�h�ƈقȂ�_�́A
- �߂�l�������Ȃ��i���w���p�[�z���ŏo�̓R���e���c���L�q����j
- @helper�u���b�N�z���ł�Razor�\���𗘗p�ł���
�Ƃ���2�_���B�܂��A�쐬�����R�[�h�́A�A�v���P�[�V�����E���[�g�z����App_Code�t�H���_�ɁA�i�Ⴆ�jWings.cshtml�^Wings.vbhtml�̂悤�Ȗ��O�Ŕz�u����K�v������B���̂悤�ɒ�`�����w���p�[�́A�u�x�[�X��.�w���p�[��(����, �c�c)�v�̌`���ŌĂяo����*5�B
*5 ����̃r���[�ł������p���Ȃ��̂ł���A�r���[�E�e���v���[�g�{�̂ɋL�q���Ă��悢�B���̏ꍇ�́A�u�w���p�[��(����, �c�c)�v�ŌĂяo����B
|
@Wings.ImageTag("http://www.wings.msn.to/image/wings.jpg",
"�T�[�o�[�T�C�h�Z�p�̊w�ю�", new { height=50, width=150 })
|
@Wings.ImageTag("http://www.wings.msn.to/image/wings.jpg",
"�T�[�o�[�T�C�h�Z�p�̊w�ю�", New With {.height = 50, .width = 150})
|
|
���X�g21�@���X�g19�Œ�`����ImageTag�w���p�[���Ăяo���R�[�h�i��FC#�A���FVB�j |
�@��R���e���c�����i��VB�^C#�̃R�[�h�j�������Ȃ��Ă���ƁA@helper�\���͂������ăR�[�h���ǂ݂ɂ����Ȃ鋰������邪�A�R���e���c��̂̃w���p�[�ł͐ϋɓI�Ɋ��p���Ă����Ƃ悢���낤�B
��
�@�ȏ�A����̓r���[�E�w���p�[�ɂ��Ă���ɓ��ݍ���ŁADisplayFor�^EditorFor�w���p�[�ƁA�w���p�[�̎���ɂ��ĉ�������B�����Razor�҂̍ŏI��Ƃ��āA�A�v���P�[�V�����S�̂̃f�U�C�������ʉ����郌�C�A�E�g�╔���r���[�ɂ��ĉ������\��ł���B
 |
�@ |
�@
Insider.NET �t�H�[���� �V���L��
- ��2��@�Ȍ��ȃR�[�f�B���O�̂��߂� �i2017/7/26�j
�@�����_���ŋL�q�ł��郁���o�̑����Athrow���Aout�ϐ��A�^�v���ȂǁAC# 7�ɂ͈ȑO�����R�[�h���Ȍ��ɋL�q�ł���悤�ȋ@�\����������Ă���
- ��1��@Visual Studio Code�f�o�b�O�̊�b�m�� �i2017/7/21�j
�@Node.js�v���O�������f�o�b�O���Ȃ���AVisual Studio Code�ɓ�������Ă���f�o�b�O�@�\�̊�{�́u�L�v���}�X�^�[���悤
- ��1��@���ĂȃR�[�f�B���O�̂��߂� �i2017/7/19�j
�@C# 7�Œlj����ꂽ�V�@�\�̒�����A�u���l���e�����\���̉��P�v�Ɓu���[�J�����v���Љ��B�����͕�����₷���R�[�h���L�q����̂Ɏg����
- Presentation Translator �i2017/7/18�j
�@Presentation Translator��PowerPoint�p�̃A�h�C���B�v���[���e�[�V�������̎����̕t����A������ł̎��^�����A�X���C�h�̖|����s����